直接插入排序也是八大排序算法之一。
它是希尔排序的前身。其排序原理:通过构建有序序列,对于未排序的数据,在已排序序列中从后向前扫描,找到相应位置并插入。我们假设第一个数是排好的,之后的数对排好的部分从后向前比较并逐一移动。
public static void inserSort(int[] array){
for(int i = 1;i < array.length; i++){
int j = i;
int target = array[i]; //要插入的数据
while( j > 0 && target < array[j-1] ){
array[j] = array[j-1]; //把当前位置的数据变成上一个数据,因为插入了后前面一个数据往后面移动了一位
j--; //继续向前寻找看看要插入的数是不是比前面的数小
}
array[j] = target; //最后还要把插入的数据放到指定的位置上去
}
}
直接插入排序应用场景: 适用于3到7个数据的排序。