算法思想:给定一个数组l,第一次比较索引0-0上位置的数,第二次比较索引0-1上位置的数,第二次相对第一次,只有索引1是新的数,将索引1的数依次与之前排好序的数比较,如果小于则交换位置
def insert_sort(l: list):
n = len(l)
if n < 2:
return l
for i in range(n):
index = i
while index - 1 >= 0 and l[index - 1] > l[index]:
"""
第一轮循环:index=0,index-1不满足,不走while
第二轮循环,index=1,满足走while,比较列表索引0和索引1上的值,如果索引1值小于索引0,则交换变量
index-=1,跳出while
第三轮循环,同上
"""
l[index], l[index - 1] = l[index - 1], l[index]
index -= 1
return l
if __name__ == '__main__':
l = [7, 3, 5, 2, 5, 3, 6, 10]
# [2, 3, 3, 5, 5, 6, 7, 10]
print(insert_sort(l))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)