插入排序:将数组A排序,首先将A[2]插入已经有序的数组A[1];再将A[3]插入已经有序的数组A[1],A[2];依次类推;最后将A[N]插入已经排好序的数组A[1],...,A[N].
InputParameter:a
OutputParameter:a
insertion_sort(a){
n=a.last;
for i=2 to n{
val=a[i]; //保存a[i]
j=i-1;
//若val<a[j],则a[j]右移,为a[i]腾出位置
while(j>=1&&val<a[j]){
a[j+1]=a[j]
j=j-1
}
a[j+1]=val //插入val
}
}