原理:
demo:
def insert_sort(data):
"""
插入排序
:param data: 待排序的数据列表
:return:
"""
for i in range(1, len(data)): # 无序区域数据
tmp = data[i] # 第i次插入的基准数
for j in range(i, -1, -1):
if tmp < data[j - 1]: # j为当前位置,试探j-1位置
data[j] = data[j - 1] # 移动当前位置
else: # 位置确定为j
break
data[j] = tmp # 将当前位置数还原
if __name__=='__main__':
import random
data_list=list(range(30))
random.shuffle(data_list) # 打乱列表数据
print("pre:",data_list)
insert_sort(data_list)
print("after:",data_list)
#结果:
#pre: [7, 17, 10, 16, 23, 24, 13, 11, 2, 5, 15, 29, 27, 18, 4, 19, 1, 9, 3, 21, 0, 14, 12, 25, 22, 28, 20, 6, 26, 8]
#after: [0, 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, 27, 28, 29]