勵志

勵志人生知識庫

梳排序

梳排序(Comb sort)是一種由Wlodzimierz Dobosiewicz於1980年發明的不穩定排序算法,後來由Stephen LaceyRichard Box在1991年四月號的Byte雜誌中推廣。梳排序的目的是通過消除「烏龜」(即數組尾部的小數值),這些數值是造成冒泡排序緩慢的主要原因,從而提高排序效率。

在梳排序中,初始的間距設定為數組的長度,然後在每次循環中以一個固定的比率遞減,通常這個遞減率設定為1.3。在每次循環中,梳排序會遍歷數組一次,比較並交換兩項,如果兩項的間距為1,表示數組大致已排序好,此時會用冒泡排序進行最後的檢查和修正。

梳排序的平均時間複雜度為O(nlogn),因其直接在原數組的基礎上進行交換,空間複雜度為O(1)。