1. 程式人生 > >數據結構與算法小結——排序(二)

數據結構與算法小結——排序(二)

由於 優秀 復雜度 如圖所示 post bsp blog 1.2 間隔

1.2 希爾排序

  希爾排序屬於插入排序的一種,是直接插入排序的優化,其主要思想是:由於在序列基本有序的情況下,直接插入排序的效率很高,那麽,我們引入一個增量incre,把以incre為間隔的元素做一次直接插入排序,使其基本有序;隨後,incre慢慢減小,繼續做上述直接插入排序,最後incre變成1,退化成直接插入排序,但這時候的序列已經基本有序,排序效率非常高。實際上就是讓相對較小的元素跳躍著往前移動。其過程如圖所示:

技術分享圖片

  希爾排序的時間、空間復雜度、穩定性以及適用場合如圖:

技術分享圖片

  如圖所示,希爾排序的性能在四個改進算法中算不上好(在O(nlgn)~O(n^2)之間,其它3個的平均時間復雜度都為O(nlgn)),但希爾排序的意義在於突破了O(n^2)的限制,為後來更優秀算法打開了思路。

數據結構與算法小結——排序(二)