插入排序法
- 默认第一个元素为最小,默认他是排序的
- 从第二个元素查找, 如果,第二个元素比第一个小,那么对调位置。
- 以此类推
mark first element as sorted
for each unsorted element
'extract' the element
for i = lastSortedIndex to 0
if currentSortedElement > extractedElement
#如果被取出的元素小于前面排好的元素
move sorted element to the right by 1
#那么前面排好的元素向后挪
else: insert extracted element
def insertionSort(alist):
for index in range(1,len(alist)):
#他从第二位开始循环的
#循环list 得到每个元素的值
currentvalue = alist[index]
#他们的INDEX 为位置
position = index
#当有位置,并且链表中前一个元素大于目前这个元素
while position>0 and alist[position-1]>currentvalue:
#一个一个向前比较
#对调
alist[position]=alist[position-1]
position = position-1
alist[position]=currentvalue
alist = [54,26,93,17,77,31,44,55,20]
insertionSort(alist)
print(alist)
内部比较,然后换位