算法描述
- 从第一个元素开始,该元素可以认为已经被排序
- 取出下一个元素,在已经排序的元素序列中从后向前扫描
- 如果该元素(已排序)大于新元素,将该元素移到下一位置
- 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
- 将新元素插入到该位置后
- 重复步骤2~5
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
def InsertSort(array):
length = len(array)
for i in range(1, length):
j = i
temp = array[j]
while (j>0 and temp<array[j-1]):
array[j] = array[j-1]
j = j-1
array[j] = temp
print("第%d趟排序结果为: " % i, array)
return array
def main():
array = [5, 4, 3, 2, 1]
print("待排序列表为: ", array)
InsertSort(array)
if __name__ == "__main__":
main()