选择排序
选择排序改进了冒泡排序,每次遍历列表只做一次交换。为了做到这一点,一个选择排序在他遍历时寻找最大的值,并在完成遍历后,将其放置在正确的位置。
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))
对于冒泡排序来讲选择排序由于交换数量的减少,选择排序通常在基准研究中执行得更快。