选择排序
什么是选择排序
- 一趟排序记录最小的数,放到第一个位置
- 再一趟排序记录列表无序区最小的数,放到第二位置
- …
- 算法关键点:有序区和无序区最小数的位置,记录无序区最小数的位置,默认的无序区的第一个数为最小数,通过后面的数和前面的数比较,最后更新最小数的位置,继续遍历完之后就会保存成一个有序的数列。
实际举例
def select_sort(li):
for i in range(len(li)-1):#需要排序的次数
min_location = i
for j in range(i+1,len(li)):#无序区的范围
if li[j] < li[min_location]:#判断无序区中的数如果小于默认的最小数
min_location = j#更新最小数的位置
#这里就会把最小的数给无序区的第一个数-无序区的默认最小数也就是li[i],这里的li[min_location]中的min_location就是嵌套的for循环中的j的值给的它。
li[i],li[min_location] = li[min_location],li[i]#交换最小数和默认最小数的位置
如下: