将待排序中的一个数插入到已排好序的数据中的适当位置上,从而得到一个新的有序数据。
时间复杂度O(N^2),稳定的排序算法。
当数组元素部分有序时,效率变高。
public static void insertionSort(int[] a){
int N = a.length;
for(int i = 1; i < N; i++){
for(int j = i; j > 0 && a[j] < a[j-1]; j--){//升序
int temp = a[j];
a[j] = a[j-1];
a[j-1] = temp;
}
}
}