SortAlgosKt(2) - 选择排序
文章目录
又是一个颓废的周末,忙着看比赛没怎么学习,罪过罪过。一觉醒来,才知道双11今天凌晨就提前开始了,大家都像打仗一样的奔向战场,而我还在沉浸在香甜的睡梦中(血亏)。不过想想,不买立省100%,也就没那么亏了嘿嘿。不闲扯了,还是来讲讲选择排序吧。
算法思想
runoob 上对选择排序的步骤是这么概括的:
首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
重复第二步,直到所有元素均排序完毕。
总结起来就是,每一趟遍历,找出最小的数放在相应的位置
和冒泡排序不同的是,选择排序每趟下来只会在遍历完所有元素后才会进行一次交换,而冒泡排序则是每趟遍历都有可能会进行多次交换,这也是选择排序略优于冒泡排序的地方(这里针对的是未优化前的冒泡排序,优化后的冒泡排序会检测如果某趟遍历没有发生元素交换,就提前结束排序,所以在某些情况下会优于选择排序)。
算法实现
|
|
时间复杂度:O(n^2)
空间复杂度:O(1)
评论正在加载中...如果评论较长时间无法加载,你可以 搜索对应的 issue 或者 新建一个 issue 。