本文實例講述了Python實現的桶排序算法。分享給大家供大家參考,具體如下:
桶排序也叫計數排序,簡單來說,就是將數據集里面所有元素按順序列舉出來,然后統計元素出現的次數。最后按順序輸出數據集里面的元素。
但是桶排序非常浪費空間, 比如需要排序的范圍在0~2000之間, 需要排序的數是[3,9,4,2000], 同樣需要2001個空間
注意: 桶排序不能排序小數
以下為從小到大代碼實現
#!/usr/bin/env python# coding:utf-8def bucketSort(nums): # 選擇一個最大的數 max_num = max(nums) # 創建一個元素全是0的列表, 當做桶 bucket = [0]*(max_num+1) # 把所有元素放入桶中, 即把對應元素個數加一 for i in nums: bucket[i] += 1 # 存儲排序好的元素 sort_nums = [] # 取出桶中的元素 for j in range(len(bucket)): if bucket[j] != 0: for y in range(bucket[j]): sort_nums.append(j) return sort_numsnums = [5,6,3,2,1,65,2,0,8,0]print "VEVB武林網測試結果:"print bucketSort(nums)"""[0, 0, 1, 2, 2, 3, 5, 6, 8, 65]"""
運行結果:

總體來說,桶排序的優點就是特別快,真的是特別快!特別快!特別塊!而缺點就是特別耗資源,如果數據取值的范圍是0---1010, 就要申請一個大小為1010的數組,想想這得多耗內存空間。闊怕!且桶排序只能排序大于零的整數。
希望本文所述對大家Python程序設計有所幫助。
新聞熱點
疑難解答