Python實現的桶排序演算法樣本,python排序演算法樣本

來源:互聯網
上載者:User

Python實現的桶排序演算法樣本,python排序演算法樣本

本文執行個體講述了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 "幫客之家測試結果:"print bucketSort(nums)"""[0, 0, 1, 2, 2, 3, 5, 6, 8, 65]"""

運行結果:

總體來說,桶排序的優點就是特別快,真的是特別快!特別快!特別塊!而缺點就是特別耗資源,如果資料取值的範圍是0---1010, 就要申請一個大小為1010的數組,想想這得多耗記憶體空間。闊怕!且桶排序只能排序大於零的整數。

PS:關於排序演算法的詳細說明還可參考本站線上工具:

線上動畫示範插入/選擇/冒泡/歸併/希爾/快速排序演算法過程工具
http://tools.jb51.net/aideddesign/paixu_ys

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.