03 经典排序算法
插入排序
经典插入算法
public class InsertSort {
public static void main(String[] args) {
int[] array = new int[]{2, 3, 1, 4, 7, 8, 3, 5, 2, 6, 8, 9, 1};
insertSort(array);
for (int value : array) {
System.out.print(value + " ");
}
}
/**
* 插入排序
*
* @param array 待排序数组
*/
public static void insertSort(int[] array) {
for (int i = 1; i < array.length; i++) {
// 待插入的元素
int needInsert = array[i];
// 开始比较的索引
int index = i - 1;
while (index >= 0 && array[index] > needInsert) {
// 将该位置的元素进行后移
array[index + 1] = array[index];
// 再比较该位置前一个元素
index--;
}
// 当前位置满足条件
array[index + 1] = needInsert;
}
}
}二分插入算法
最后更新于