插入排序
輸入:n個數(shù)的一個序列<a1,a2,…,an>。
輸出:輸入序列的一個排列<a1',a2',…,an‘>,滿足a1'≤a2'≤…≤an'。
public static void insertionSort(int[] a){
int key,i;
for(int j=1;j<a.length;j++){
key=a[j];
i=j-1;
while(i>=0&&a[i]>key){
a[i+1]=a[i];
i=i-1;
}
a[i+1]=key;
}
}
j表示正準備插入的數(shù)的下標,a[0,j-1]構(gòu)成了當(dāng)前排序好的數(shù)組,事實上,a[0,j-1]就是原來位置a[0,j-1]的元素,但現(xiàn)在已按序排列。