桶排序
舉個栗子,我們的任務(wù)是將 40 個 100 以內(nèi)的數(shù)字排序。我們可以這么做:
將0~~20以內(nèi)的數(shù)字放入第一個桶內(nèi)
將21~~40以內(nèi)的數(shù)字放入第二個桶內(nèi)
依次反復直到將這40個數(shù)字放入 5 個桶內(nèi)
利用某種排序方法(本文用的快速排序)將桶內(nèi)元素排序
從桶內(nèi)按照順序?qū)?shù)字取出依次放入一個原數(shù)組
桶排序 (Bucket sort)或所謂的箱排序
桶排序 (Bucket sort)或所謂的箱排序,是一個排序算法,工作的原理是將數(shù)組分到有限數(shù)量的桶子里。每個桶子再個別排序(有可能再使用別的排序算法或是以遞歸方式繼續(xù)使用桶排序進行排序)。桶排序是鴿巢排序的一種歸納結(jié)果。當要被排序的數(shù)組內(nèi)的數(shù)值是均勻分配的時候,桶排序使用線性時間(Θ(n))。但桶排序并不是 比較排序,他不受到 O(n log n)下限的影響。