所謂插入排序就是指将數組分成左右兩個小數組 a, b ,
數組a元素個數從一個開始遞增,直至arr.lenth完成整個數組的排序,通常數組a的第一個元素是arr[0],範圍逐漸向右拓展;
數組b元素個數從arr.len開始遞減,通常b數組第一個元素逐漸替換為arr[1], arr[2], arr[3].....arr[arr.lenth-1],範圍逐漸向右縮小;

排序過程如下:
拿到b數組的一個元素(從第一個開始),記為key值(key=arr[i]),
然後将key值與數組a的元素(arr[j])自右而左進行比較:
如果arr[j]>key, 則将arr[j]元素往後移動;
如果arr[j]
重複以上步驟,直至完成b數組的所有元素的周遊。
最終,完成周遊b數組的所有元素并進行元素位置相應調整,完成整個數組的升序排列。
插入排序函數代碼如下:
// 插入排序
public static void sort(int[] arr) {
for(int i=1;i
int key = arr[i];
int j=i-1;
for(;j>-1;j--) {
if(arr[j]>key) {
arr[j+1] = arr[j];
}
else {
// arr[j+1] = key;
break;
}
} // for
arr[j+1] = key;
} // for
}
