插入排序使用增量方法:在排好序的数组A[1...j-1]后,将元素A[j]插入,形成排好序的子数组A[1.....j].下面将介绍使用递归和非递归的方法进行插入排序
1.非递归插入排序:
insert_sort(A){
for j ← 2 to length[A]
do key ← A[j]
i ← j-1
while i>0 and A[i]>key
do A[i+1]← A[i]
i← i-1
A[i+1] ← key
}
2.递归插入排序算法
insert_sort(A,k){
if(k>1){
insert_sort(A,--k)
}
sort(A,k)
}
sort (A,k){
for j ← 2 to k
do key ← A[j]
i ← j-1
while i>0 and A[i]>key
do A[i+1]← A[i]
i← i-1
A[i+1] ← key
}