排序算法之直接插入排序

来源:互联网 发布:淘宝没发货退款要多久 编辑:程序博客网 时间:2024/06/05 06:01
package algorithm.insertionsort;public class InsertSortDemo {public static void insertSort(int[] arr){int j = 0; // 当前值的下标int i = 0; // 当前值的前一个值的下标int key = 0; // 保存当前值int length = arr.length; // 数组长度// 从数组第二个位置开始遍历,// 即将第一个元素构成的数组认为是有序数组(是抽象,实际不存在),// 将后面的元素找到合适位置插入,// 保持始终有序for (j = 1; j < length; j++){key = arr[j]; // 保存当前值,防止丢失i = j - 1; // 定位当前值前一个值的下标while (i >= 0 && arr[i] > key){arr[i + 1] = arr[i]; // 比当前值大的元素依次往后移一位(对于抽象的有序数组来说)i--; // i 值前移,寻找合适的位置}arr[i + 1] = key; // 将当前值插入到空挡的位置}}public static void main(String[] args) {int[] arr = new int[] {5, 2, 4, 6, 1, 3};insertSort(arr);for (int i = 0; i < arr.length; i++){System.out.println(arr[i]);}}}

0 0