ソート原則
ソート我々の手のカードの原理を調整するために、私達とトランプをいわゆる挿入がソートされていない要素を順次仕上げまで、すべてのプラグインを知って、代わりにすでにソート要素の前に挿入されていると言うことですつまり、同じです。
時間複雑
ソートコード
public class InsertionSort {
/**
* 插入排序优化版本
* 适用场景:数组接近有序的情况下
*/
public void insertionSortV(int[] arr, int a, int n) {
for (int i = 1; i < arr.length; i++) {
//将外层循环的元素复制一份,
int e = arr[i];
//记录外层元素应该插入的位置
int j;
/**
* 内层循环,与外层循环复制的那个元素进行比较,如果
* 小于被比较的元素,将被比较的元素向后移动,然后再用复制的元素
* 在跟以前的前边的元素比较,以此类推,直到找到比他大的元素终止循环,将给元素放在比他大的后边
*/
for (j = i; j > 0 && arr[j - 1] > e; j--) {
arr[j] = arr[j - 1];
}
arr[j] = e;
}
}
}