1.直接插入排序
基本思想
在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。
图像示例
算法实现
一种是从后往前插入,也是java.util.Array的实现方式
private static int[] insertSort(int[] array, int low, int high) { //从后往前插入,Array里面实现
for(int i=low+1;i<=high;i++) { //比较值 无=最后一个值不参与比较 low+1可以为low(Array实现)
for (int j=i;j>low&&(array[j-1]>array[j]);j--){ //从后开始插入,每次最后的几个元素是有序的
swap(array,j,j-1);
}
}
return array;
}
一种是从前往后插入
private static int[] insertSort2(int[] array, int low, int high) {//从前往后插入
for(int i=l