// 四、插入排序(算法速度还行,80000个数排序需要2-3秒)
public static void sort_insert(int[] arr) {
/**
* 从index(下标)为1的往前插入比较,直到从1带arr.lenght都差比较完之后
*/
for (int i = 1; i < arr.length; i++) {
// 注意:下面的arr[i],和i+1,必须赋值给变量,因为这个插入式动态的,
// 如果不赋值,那么下面i将会被改变,那么我们的for循环就会出错
int insertValue = arr[i]; // 将进行插入比较的值
int preIndex = i - 1; // 将进行插入比较的值 的前面的下标
while (preIndex >= 0 && insertValue < arr[preIndex]) { // 防止下标越界,所以必须设置preIndex>=0
arr[preIndex + 1] = arr[preIndex];// 条件满足就让前面的值往后移
preIndex--; // 需要与要插入的前面的所有元素元素进行比较
}
// while循环结束,要插入的位置找到。直接赋值
arr[preIndex + 1] = insertValue;
}
}
排序:插入排序 ——java
最新推荐文章于 2024-09-26 10:20:23 发布