12.选择排序
概念
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下:
- 首先在未排序序列中找到最小(大)元素,存放在排序序列的起始位置,即第一个位置。
- 然后再将剩余未排序元素中继续寻找最小(最大)元素,放在第二个位置。
- 以此类推,直到所有元素均排序完毕。
总结:先找出最大(最小)的元素,放在第一位或者最后一位。以找出最大的放在第一位为例,先找出最大的放在第一位,再在剩下的元素找出最大的元素,放在第二位,依次进行,直到遍历到最后一个元素,排序结束。选择选的就是最大或者最小的的,相当于挑高个,挑完最高的,再挑次高的,直到结束。
排序过程
时间复杂度
最优时间复杂度:O(n^2)
最坏时间复杂度:O(n^2)
稳定性:不稳定(考虑升序每次选择最大的情况)
代码实现
1 | def selection_sort(alist): |
程序可以看成两段,一段是找到剩下里面最小的元素,一段是交换最小值,这两步就可以完成排序,时间复杂度为O(n^2),注意写代码的时候,这两段要分开写,思路更加清晰一些,注意索引的值,可以代入最小时和最大时去检验,这样可以有效避免索引出错。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 咋的个人博客!







