选择排序
选择排序改进了冒泡排序,每次遍历列表只做一次交换。为了做到这一点,一个选择排序在他遍历时寻找最大的值,并在完成遍历后,将其放置在正确的位置。

1 """
2 选择排序
3 """
4
5
6 def select_sort(int_list):
7 length = len(int_list)
8 if length <= 1: return int_list
9 # 选择排序的循环次数
10 for i in range(length - 1):
11 # 假定索引为0的元素为最大值
12 index = 0
13 # 对未排序的元素进行循环遍历与假定最大值比较
14 for j in range(1, length - i):
15 # 如果未排序的元素大于假定的最大值,修改最大值索引
16 if int_list[j] > int_list[index]:
17 index = j
18 # 每次循环找到最大值与未排序元素的最后一个交换
19 int_list[j], int_list[index] = int_list[index], int_list[j]
20 return int_list
21
22
23 # print(select_sort([11,3,5,89,1]))
24 if __name__ == '__main__':
25 int_str = input("请输入逗号分割的整数>>>").strip()
26 int_list = [int(i) for i in int_str.split(",")]
27 print(select_sort(int_list))
对于冒泡排序来讲选择排序由于交换数量的减少,选择排序通常在基准研究中执行得更快。