算法之LOWB三人组之插入排序
Posted lishi-jie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法之LOWB三人组之插入排序相关的知识,希望对你有一定的参考价值。
插入排序
思想:类似于抽扑克牌,共有8张扑克牌,手里默认有一张,桌面上有7张,我们每次从桌面上抽一张和手里的牌进行比较,如果比手里的牌大,则直接放到手里的牌的后面,如果比手里的牌小,则放到手里的牌的前面,保证你放的每一次都会产生一个有序区。当牌完的时候,这8张牌也就排好了顺序。这就是插入排序
时间复杂度为O(n^2)
def insert_sort(li):
for i in range(1, len(li)):
tmp = li[i] # 摸到的牌存一个变量中
j = i - 1 # 模到的牌的前一位的下标
# 当手里的牌比摸到的大的时候
while li[j] > tmp and j >= 0:
# 值向右移一位,
li[j+1] = li[j]
# 同时j的下标已经是tmp的下标,还要再上前一位
j -= 1
# 如果摸到的牌比手里的大,那么直接插入j的后一位
li[j+1] = tmp
print(li)
li = [3,2,4,1,5,7,9,6,8]
输出结果:
以上是关于算法之LOWB三人组之插入排序的主要内容,如果未能解决你的问题,请参考以下文章