直接选择排序(Straight Select Sort)
1.选择排序概述
选择排序(Selection sort) 是一种简单直观的排序算法,它的工作原理是每次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
2.基本思想
n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果
算法分析:
- 关键字比较次数
在第i趟排序中选出最小关键字的记录,需要做n-i次比较,因此总的比较次数为n(n-1)/2=o(n^2) - 记录移动次数
初始文件为正序时,移动次数为0
文件初态为反序时,每趟排序均要执行交换操作,总的移动次数最大值为3(n-1)
平均时间复杂度为 O(n^2) - 稳定性:不稳定
3.python实现
# 选择排序算法模型:
# 3,1,2,5,6
# 31256 > 31256 > 31256 > 31256 > 1 3256 第一回合先找出
# 13256 > 13256 > 13256 > 12 356 第二回合
# 12356 > 12356 > 123 56 第三回合
# 12356 > 1235 6 第四回合
# 12356 第五回合
# ①从左往右,找最小值
list1 = [3, 1, 5, 2,