希尔排序他究竟是个什么东西

    技术2022-07-10  98

    在插入排序中,若较小的数组在角标较大的位置(从小到排),那么运算的时候就会浪费大量的时间去将之前的n-1个数据往前移。

    对此我们可以将数据不断分组,对其中的每个组使用插入排序,当组不断变长的时候,就可以将整个数据覆盖完成

    希尔排序中存在两种算法:位移法和交换法 位移法难一些,我写出位移法的实例

    int temp =0; for(int gap = arr.length/2 ; gap > 0 ; gap /= 2) { for(int i =gap ; i <arr.length ; i ++) { int curVal = arr[i]; int j = i; while(j - gap>=0 &&curVal < arr[j-gap] ) { arr[j] = arr[j-gap]; j-=gap; } arr[j] = curVal; } } System.out.println(Arrays.toString(arr)); }
    Processed: 0.011, SQL: 9