鴿巢排序

鴿巢排序 （ Pigeonhole sort ） ， 也被稱作基數分類 ， 是一種時間複雜度爲 （ 大O符號 ） 且在不可避免遍歷每一個元素並且排序的情況下效率最好的一種排序算法 。 但它只有在差值 （ 或者可被映射在差值 ） 很小的範圍內的數值排序的情況下實用 。 當涉及到多個不相等的元素 ， 且將這些元素放在同一個 「 鴿巢 」 的時候 ， 算法的效率會有所降低 。 爲了簡便和保持鴿巢排序在適應不同的情況 ， 比如兩個在同一個存儲桶中結束的元素必然相等 。 我們一般很少使用鴿巢排序 ， 因爲它很少可以在靈活性 、 簡便性 、 尤是速度上超過其他排序算法 。 事實上 ， 桶排序較鴿巢排序更加的實用 。 鴿巢排序的一個比較有名的變形是吻合排序法  ， 它僅僅適用非常有限的題目 ， 這個算法因在Programming Pearls一書中作爲解決一個非常規有限集問題方法的例子而著名 。 顯然 ， 快速排序可以當作只有兩個 （ 有些情況下是三個 ） " 鴿巢 " 的鴿巢排序 。