Python十大算法之插入排序Python代码简单实现

在这里插入图片描述

图片上是从已排好序的元素最大坐标开始比较的, 我的代码是从已排好序的元素的最小坐标开始,一个道理的

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
"""
插入排序 (个人理解)
先假设第一个元素不动,从第二个元素开始,然后拿着第二个元素跟第一个(已经排好序的元素)进行对比,
如果大于第一个元素就把这个元素放在第一个元素后面,现在已经排好两个元素了
接着在拿第三个元素,跟已经排好序的元素进行对比,
如果该元素遇到比它小的元素就放在它的后面, 以此类推
"""


def sort_list(list_):
# 先定义比较的轮数, 由于是从第二个元素开始的,所以轮数为 总元素个数减 1
for i in range(len(list_)-1):
# 然后再定义每轮进行比较的次数,这个次数就是已经排好序的元素个数,每轮排好一个,默认排好一个, 所以次数就是轮次加 1
for n in range(1 + i):
# 下面开始判断条件,
if list_[i+1] < list_[n]:
list_[i+1], list_[n] = list_[n], list_[i+1]

return list_


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