插入排序

插入排序思路:列表被分为有序区和无序区两个部分,最初有序区只有一个元素,每次从无序区选择一个元素,插入到有序区的位置,直到无序区变空

import random


def insert_sort(lis):
for i in range(1, len(lis)): # i的取值是将要摸取的牌
tmp = lis[i] # 用一个变量将i保存起来,防止前面的数往后挪的时候覆盖
j = i - 1 # j的取值是已经摸到的牌
while j >= 0 and tmp < lis[j]: # tmp < lis[j]的意思是将要摸取的牌比手里的牌小
lis[j + 1] = lis[j] # 手里的牌(lis[j])比摸到的牌大,大的牌往后挪一位,lis[j]就放到lis[j+1]的位置上
j -= 1
lis[j + 1] = tmp


data = list(range(20))
random.shuffle(data)
insert_sort(data)
print(data)

java代码插入排序:
posted @ 2018-04-12 15:25  laosun0204  阅读(113)  评论(0编辑  收藏  举报