个人算法学习之旅

40 阅读1分钟

排序算法学习

插入排序算法(升序、降序)

算法导论习题解答链接

b = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in range(1, len(b)):
    key = b[i]
    j = i - 1
    while j >= 0 and b[j] < key:
        b[j + 1] = b[j]
        j -= 1
    b[j + 1] = key
# 从1开始遍历列表下标,key等于当前下标的值
# 定义当前下标的前一个,判断是否越界以及大小判断
# 如果前一个下标的值大于当前下标的值就交换值
# 并且将前一个下标向移1位
# 再次循环判断重复,直到循环条件不符合为止
# 最后将下标右移一位开始下一次排序
print(b)

a = [9, 8, 7, 6, 5, 4, 3, 2, 1]
for i in range(1, len(a)):
    key = a[i]
    j = i - 1
    while j >= 0 and a[j] > key:
        a[j + 1] = a[j]
        j -= 1
    a[j + 1] = key
#同上,但是将是判断是否小于当前下标的值
print(a)