算法步驟
將第一待排序序列第一個元素看做一個有序序列,把第二個元素到最后一個元素當成是未排序序列。
從頭到尾依次掃描未排序序列,將掃描到的每個元素插入有序序列的適當位置。(如果待插入的元素與有序序列中的某個元素相等,則將待插入元素插入到相等元素的后面。)代碼
#!/usr/bin/python
list = [10,6,4,8,2,9,1]
def insertionSorted(list):
for i in range(1, len(list)):
preIndex = i-1 #前一個是有序序列
current = list[i] #從第一個到最后一個是待排序序列
while preIndex >= 0 and list[preIndex] > current: #當?shù)趇比i-1小時
list[preIndex+1] = list[preIndex]
preIndex-=1
list[preIndex+1] = current
return list
print(insertionSorted(list))