选择排序

'''
首先在未排序序列中找到最小(大)元素,
存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,
然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
'''

def selection_sort(lst):
    n = len(lst)
    for i in range(n-1):

        for j in range(i+1,n):
            # 未排序序列,i不断增加,为第一个未排序序列元素
            min_index = i #先令 i 为 min_index
            if lst[j] < lst[min_index]:
                min_index = j   #如果min_index大于j 则交换位置
            if min_index != i: #min_index发生了变化,不是 i
                lst[i],lst[min_index] = lst[min_index],lst[i]


lst = [54,226,93,17,77,31,44,55,20]
selection_sort(lst)
print(lst)

2020-05-07

原文地址:https://www.cnblogs.com/hany-postq473111315/p/12845306.html