梳排序

梳排序 （ Comb sort ） 是一種由於1980年所發明的不穩定排序算法 ， 並由和於1991年四月號的中推廣 。 梳排序是改良自泡沫排序和快速排序 ， 其要旨在於消除烏龜 ， 亦即在陣列尾部的小數值 ， 這些數值是造成泡沫排序緩慢的主因 。 相對地 ， 兔子 ， 亦即在陣列前端的大數值 ， 不影響泡沫排序的效能 。 在泡沫排序中 ， 只比較陣列中相鄰的二項 ， 即比較的二項的間距 （ Gap ） 是1 ， 梳排序提出此間距其實可大於1 ， 改自插入排序的希爾排序同樣提出相同觀點 。 梳排序中 ， 開始時的間距設定爲陣列長度 ， 並在迴圈中以固定比率遞減 ， 通常遞減率設定爲 1.3 。 在一次迴圈中 ， 梳排序如同泡沫排序一樣把陣列從首到尾掃描一次 ， 比較及交換兩項 ， 不同的是兩項的間距不固定於1 。 如果間距遞減至1 ， 梳排序假定輸入陣列大致排序好 ， 並以泡沫排序作最後檢查及修正 。