插入排序生活中非常常见,打扑克的时候人的本能就在用插入排序:把抽到的一张插入到手上牌的正确位置上。有两种插入排序方法,一种基于比较,另一种基于交换。代码如下:
1.基于比较的插入排序:
def insertionSort(seq):
length=len(seq)
for i in range(1,length):
tmp=seq[i]
for j in range(i,0,-1):
if seq[j-1]>tmp:
seq[j]=seq[j-1]
else:
j+=1
break
seq[j-1]=tmp
if __name__=='__main__':
seq=[8,6,4,9,7,3,2,-4,0,-100,99]
insertionSort(seq)
print(seq)
2.基于交换的插入排序:
def insertionSort2(seq):
length=len(seq)
for i in range(1,length):
for j in range(i,0,-1):
if seq[j]<seq[j-1]:
seq[j],seq[j-1]=seq[j-1],seq[j]
else:
break
if __name__=='__main__':
seq=[3,5,9,8,4,2,1,0,-6,12,-8]
insertionSort2(seq)
print(seq)
转载请注明:转自 http://blog.csdn.net/littlethunder/article/details/9399957