排序算法----选择排序

选择排序

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

  

  

 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))

  对于冒泡排序来讲选择排序由于交换数量的减少,选择排序通常在基准研究中执行得更快。

原文地址:https://www.cnblogs.com/open-yang/p/11367082.html