插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法 [1] 。插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表进行待插入位置查找,并进行移动。
插入排序就类似于玩扑克时摸牌的情形。还是以[2,5,3,1,6]为例。
2和5比较,5比2大,不变。此时的数组为[2,5,3,1,6]
3和5、2进行比较,比5大,比2小,放到2和5中间,此时的数组为[2,3,5,1,6]
1和前面的元素2,3,5进行比较,放到2的前面。此时的数组为[1,2,3,5,6]
6和前面的元素1,2,3,5进行比较,比它们大,位置不变。此时的数组为[1,2,3,5,6]
代码
#第一种
def insert_sort(li):
for i in range(1,len(li)-1):#假设第一个元素为有序数组
for j in range(i,0,-1):
if a[j]=0 and tmp


