数据结构之插入排序

202 阅读1分钟
#!/usr/bin/env python
#coding:utf-8

datalist = [8,10,30,3,5,7,20]

def insertsort(datalist):
	numlen = (len(datalist)-1)
	for index in range(numlen):
		key = datalist[index] # 当前位置
		pos = index - 1       # 前一个位置

		while pos>=0 and datalist[pos] > key:  #如果前面的牌大于后面,数字交换往后移,注意必须pos>=0
			datalist[pos+1] = datalist[pos]
			pos = pos - 1

		datalist[pos+1] = key  #直到发现pos的数字小于key了,往后退一位置,找到合适的位置把数字放进去

	return datalist

print(insertsort(datalist))