直接插入排序和希尔排序一样,都是插入排序的一种。按照难易程度先整理下直接插入排序,希尔排序后续安排。
直接插入排序的准则就是“遍历数字,找出基准;以此为点,依次移动”。基本代码如下:
public static void insertSort(int[]arr){
for(int i=1;i<arr.length;i++){ //遍历所有数字
if(arr[i]<arr[i-1]{ //如果当前数字比前个小
int temp = arr[i];
for(int j=i-1;j>=0&&arr[j]>temp;j--){
arr[j+1] = arr[j];
}
arr[j+1] = temp;
}
}
}
这种算法的缺点是如果后面有个数比较小,则前面的数都要前提。