插入排序
其基本思想是:有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序。即将一个元素插入到已排好序的序列中,从而得到一个新的排好序的序列,完成排序。
对于一个待排序列A,构造一个与之长度相等的空序列B作为排序序列,将A中的每一个元素依次插入到B中,通过与B中元素比较大小来确定该元素的位置。
插入排序和冒泡排序较为类似。
插入排序算法时间复杂度为O(n^2)
伪代码
INSERTION_SORT(A)
for j=2 to A.length
key=A[j]
//InsertA[j] into the sortted sequence A[1...,j-1]
i=j-1
while i>0 and A[i]>key
A[i+!]=A[i]
i--
A[i+1]=key
伪代码出自《算法导论》原书第3版,