經典排序算法——桶排序

補充說明三點

1,桶排序是穩定的

2,桶排序是常見排序里最快的一種,比快排還要快…大多數情況下

3,桶排序非???但是同時也非常耗空間,基本上是最耗空間的一種排序算法

無序數組有個要求,就是成員隸屬于固定(有限的)的區間,如范圍為[0-9](考試分數為1-100等)

例如待排數字[6 2 4 1 5 9]

準備10個空桶,最大數個空桶

[6 2 4 1 5 9]?????????? 待排數組

[0 0 0 0 0 0 0 0 0 0]?? 空桶

[0 1 2 3 4 5 6 7 8 9]?? 桶編號(實際不存在)

1,順序從待排數組中取出數字,首先6被取出,然后把6入6號桶,這個過程類似這樣:空桶[ 待排數組[ 0 ] ] = 待排數組[ 0 ]

[62 4 1 5 9]?????????? 待排數組

[0 0 0 0 0 060 0 0]?? 空桶

[0 1 2 3 4 567 8 9]?? 桶編號(實際不存在)

2,順序從待排數組中取出下一個數字,此時2被取出,將其放入2號桶,是幾就放幾號桶

[6 24 1 5 9]?????????? 待排數組

[0 020 0 0 6 0 0 0]?? 空桶

[0 123 4 5 6 7 8 9]?? 桶編號(實際不存在)

3,4,5,6省略,過程一樣,全部入桶后變成下邊這樣

[6 2 41 5 9]?????????? 待排數組

[01 2045 60 09]?? 空桶

[01 2345 6 7 89]?? 桶編號(實際不存在)

0表示空桶,跳過,順序取出即可:1 2 4 5 6 9


以下附上用Python實現的桶排序程序

程序


執行結果
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 本篇為經典排序開篇故在此說一下排序的定義 所謂排序即將一組對象按照某種邏輯順序重新排列的過程 ---------格...
    WX_WDN閱讀 1,679評論 0 0
  • 概述 排序有內部排序和外部排序,內部排序是數據記錄在內存中進行排序,而外部排序是因排序的數據很大,一次不能容納全部...
    蟻前閱讀 5,214評論 0 52
  • 概述:排序有內部排序和外部排序,內部排序是數據記錄在內存中進行排序,而外部排序是因排序的數據很大,一次不能容納全部...
    每天刷兩次牙閱讀 3,742評論 0 15
  • 數據結構與算法——計數排序、桶排序、基數排序 計數排序 計數排序有如下四個步驟。 首先會對每個輸入進行頻率統計,得...
    sunhaiyu閱讀 1,133評論 0 11
  • 霞在自殘了,尹在她的身邊說盡了好話也不起一點作用。 “霞,住手吧。” ...
    骨頭兔子閱讀 1,147評論 0 4