插入排序
1.由小到大排序
2.时间复杂度为n的平方阶,是一种稳定的排序
3.外循环控制要比较的值,内部while循环进行判断:如果后面的值小于前面的值,前面的值后移,直到前面的值小于后面的值,此时把insertValue插入到该位置既可
4.因为不是每一次比较都进行交换,所以插入排序的速度比冒泡排序要快。
public static void Insertsort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
// 保存进入插入排序的值insertValue
int insertValue = arr[i];
// 保存下一个要比较值的索引
int insertIndex=i-1;
while (0=<insertIndex && insertValue< arr[insertIndex]){
arr[insertIndex]=arr[insertIndex];
insertIndex--;
}
// while内多减了一次需要加回来
arr[insertIndex+1]=insertValue;
}
}