排序演算法 桶排序

2021-09-07 12:46:41 字數 698 閱讀 6605

桶排序 (bucket sort)或所謂的箱排序的原理是將陣列分到有限數量的桶子裡,然後對每個桶子再分別排序(有可能再使用別的排序演算法或是以遞迴方式繼續使用桶排序進行排序),最後將各個桶中的資料有序的合併起來。

排序過程:

假設待排序的一組數統一的分布在乙個範圍中,並將這一範圍劃分成幾個子範圍,也就是桶

將待排序的一組數,分檔規入這些子桶,並將桶中的資料進行排序

將各個桶中的資料有序的合併起來

data structure visualizations 提供了乙個桶排序的分步動畫演示。

設有陣列 array = [29, 25, 3, 49, 9, 37, 21, 43],那麼陣列中最大數為 49,先設定 5 個桶,那麼每個桶可存放數的範圍為:0-9、10-19、20-29、30-39、40-49,然後分別將這些數放人自己所屬的桶,如下圖:

然後,分別對每個桶裡面的數進行排序,或者在將數放入桶的同時用插入排序進行排序。最後,將各個桶中的資料有序的合併起來,如下圖:

啦啦啦

排序演算法 桶排序

桶排序 bucket sort 或所謂的箱排序,是乙個排序演算法,工作的原理是將陣列分到有限數量的桶子裡。每個桶子再個別排序 有可能再使用別的排序演算法或是以遞迴方式繼續使用桶排序進行排序 桶排序是鴿巢排序的一種歸納結果。當要被排序的陣列內的數值是均勻分配的時候,桶排序使用線性時間 n 但桶排序並不...

排序演算法 桶排序

2009 12 02 12 01 2817人閱讀 桶排序 bucket sort 或所謂的箱排序,是乙個排序演算法,工作的原理是將陣列分到有限數量的桶子裡。每個桶子再個別排序 有可能再使用別的排序演算法或是以遞迴方式繼續使用桶排序進行排序 桶排序是鴿巢排序的一種歸納結果。當要被排序的陣列內的數值是均...

排序演算法 桶排序

桶排序是乙個在時間複雜度和空間複雜度十分極端的演算法,它的時間複雜度可以達到o n o n o n 但是空間複雜度確是十分的高,這個高取決於陣列中最大的數。即最大的數是多少,就需要開闢多少的空間,當然這個說法只對於普通的桶排序來說的,對於有些使用鍊錶或者桶排序 插入排序的做法,就各有情況了。做法其實...