python 插入排序


# 插入排序
# 在未排序的序列中,构建一个子序列排序,直到全部数据排序完成
# 将待排序的数据,插入到已经排序的序列中
# 适用于小规模数据排序
# 直接插入排序
nums = [1,9, 8, 5, 6, 7, 4, 3, 2]
nums = [0] + nums # 增加一个哨兵位,待比较数字0
lenth = len(nums)
for i in range(2, lenth): # 从2开始,0是哨兵位,1是待比较数字
nums[0] = nums[i] # 先将2放置哨兵位
j = i - 1 # 获取到1的位置
if nums[j] > nums[0]: # 和哨兵位比较
while nums[j] > nums[0]:
nums[j+1] = nums[j] # 比哨兵位的数字大,右移
j -= 1 # 换另一个有序数据再比较
nums[j+1] = nums[0] # 哨兵位数据归位
nums.pop(0) # 去掉哨兵位
print(nums)
posted on 2018-08-29 12:56  栗子测试  阅读(153)  评论(0编辑  收藏  举报