选择排序(Selection sort)
选择排序(Selection sort)是一种简单直观的排序算法
算法原理
第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。
举例:
第一趟排序:所有数据中找出最小1,与第1位 10 交换位置 [1 | 10,35,61,89,36,55]
第二趟排序:[10,35,61,89,36,55] 找出最小10,放到第2位 [1,10 | 35,61,89,36,55]
第三趟排序:[35,61,89,36,55]找出最小35,放到第3位 [1,10,35 | 61,89,36,55]
第四趟排序:[61,89,36,55]找出最小36,放到第4位 [1,10,35,36 | 61,89,55]
第五趟排序:[61,89,55]找出最小55,放到第5位 [1,10,35,36,55 | 61,89]
第六趟排序:[61,89]找出最小61,放到第6位 [1,10,35,36,55,61 | 89]
第一趟总共进行了六次比较,排序结果: [1,10,35,36,55,61,89]
代码:
def selection_sort(list2):
for i in range(0, len (list2)-1):
min_ = i
for j in range(i + 1, len(list2)):
if list2[j] < list2[min_]:
min_ = j
list2[i], list2[min_] = list2[min_], list2[i]