直接插入排序
基本思想 : 减治算法。把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列
当插入第i(i>=1)个元素时,前面的array[0],array[1],…,array[i-1]已经排好序,此时用array[i]的排序码与array[i-1],array[i-2],…的排序码顺序进行比较,找到插入位置并将array[i]插入,原来位置上的元素顺序后移
- 在有序部分,查找合适的位置
1.1 遍历查找:j为有序部分,i为无序部分的第一个数,则j+1的位置就是要插入的位置
1.2 二分查找 - 把选择的数插入到合适的下标处
顺序表,给定pos做插入
/**
* 直接插入排序
*/
public class InsertSort {
//1.遍历查找,顺序表,给定pos做插入
private static void insertSort1(int[] array){
//有序[0,i)
//无序[i,array.length)
for(int i = 0; i < array.length; i++){
int j;
//1.从后往前遍历
for(j = i - 1; j >= 0 && array[<