希尔排序法的基本思想是:先选定第一个整数,把待排序文件里全部记录分成个组。例如以下图,第一个整数分为有序组,其余为无序组。

希尔排序法_数组

        每次处理就是将无序组中的第一个数。与有序组的元素从后往前一次比較,找到合适位置插入。即完毕一次处理;这样一直反复下去,直到无序组中没有元素为止。例如以下图,已清除描写叙述。

希尔排序法_直接插入排序_02

        排序的目的就是为了使无序数列变为有序数列。希尔排序法,一開始就定一个有序组,然后。把无序组变为有序组。这种思路,我想到了米老师常说的“如果自己最大”。无论你是不是最大,先如果自己最大,然后,慢慢比較,一步步变成最大。希尔也是这样,无论序列是否有序,先随便找一个数组成有序列。然后,一步步把整个序列变为有序列。

        网上说希尔排序是直接插入排序的优化。但我还是感觉他们一样,谁有什么想法,希望能够交流一下!