选择排序

在这里插入图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
"""
(不考虑列表元素小于1的列表,如果列表小于等于1,需要捕获异常)
选择排序是记录最小值的下标
先拿着一个元素进行元素对比,找到最小的元素,把这个最小的元素放到最前面,然后在从剩余的元素中继续
寻找最小的元素,然后放在已经排序过的序列末尾
"""


def sort_list(list_):
# 先定义比较的轮数, 一个一个的比较,所以省去最后一次,总轮数为 元素个数减 1
for i in range(len(list_)-1):
# 定义一个最小元素的下标,(如果是降序就是最大元素的下标)
min_sub = i
# 定义每轮的要进行比较的次数, 由于每轮比较后都会固定一个元素,所以每轮比较次数为 总元素个数减去轮次
for n in range(len(list_) -i):
if list_[min_sub] > list_[n+i]:
min_sub = n+i
list_[i], list_[min_sub] = list_[min_sub], list_[i]

return list_


if __name__ == '__main__':
list_num = [23, 5, 0, 78, 56, 55, 77, 8, 2]
print(sort_list(list_num))