n¹.³ 希爾排序時間復雜度O中的1.3是怎么來的?

1、首先希爾排序是一種遞減增量的排序算法,下面使用大小為9的數組:54、26、93、17、31、44、55、20 。

n¹.³ 希爾排序時間復雜度O中的1.3是怎么來的?


2、令數據間隔為3,將該數組分成三個子數組,如下圖所示,為下圖中灰色的部分 。
n¹.³ 希爾排序時間復雜度O中的1.3是怎么來的?


3、對每一個子數組都進行插入排序操作,將排序好的子數組合并到一個數組當中 。這個時候,會發現,每個數字都會務必接近他應該存在的位置 。
n¹.³ 希爾排序時間復雜度O中的1.3是怎么來的?


4、這是間隔為3的子數組排序后的結果,發現該排序后的數列非常接近我們需要的遞減或者遞增序列 。下一步只需要,縮小間隔進行重復性操作即可
n¹.³ 希爾排序時間復雜度O中的1.3是怎么來的?


5、最后改變間隔,使間隔變成4,這個時候子數組反而有4組 。這個說明希爾排序(shell sort)是一個不穩定的排序 。
【n¹.³ 希爾排序時間復雜度O中的1.3是怎么來的?】
n¹.³ 希爾排序時間復雜度O中的1.3是怎么來的?


    猜你喜歡