介绍
分析
基本思想:
1 | 对n个记录进行扫描,选择最小的记录,将其输出,接着在剩下的n-1个记录中扫描,选择最小的记录将其输出,不断重复这个过程,直到只剩下一个记录为止,即可完成数据从小到大的排序过程 |
算法描述:
- 从数据中选择最小(或最大)的一个数据,然后将该数与第一个数交换
- 从剩下数据中选择最小(或最大)的一个数,然后将和第二个数进行交换
- 重复下去,直到只剩下一个数据为止
C实现
1 | /** |
Swift实现
1 | class SelectSort { |
总结
时间复杂度:
- 最差O(n^2)
- 最优O(n^2)
- 平均O(n^2)
空间复杂度:
- O(1)
稳定性:
- 不稳定