欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)現(xiàn)的桶排序算法示例

 更新時(shí)間:2017年11月29日 10:17:24   作者:qlshine  
這篇文章主要介紹了Python實(shí)現(xiàn)的桶排序算法,簡(jiǎn)單說(shuō)明了桶排序的概念、原理及優(yōu)缺點(diǎn),并結(jié)合實(shí)例形式演示了Python實(shí)現(xiàn)桶排序的方法,需要的朋友可以參考下

本文實(shí)例講述了Python實(shí)現(xiàn)的桶排序算法。分享給大家供大家參考,具體如下:

桶排序也叫計(jì)數(shù)排序,簡(jiǎn)單來(lái)說(shuō),就是將數(shù)據(jù)集里面所有元素按順序列舉出來(lái),然后統(tǒng)計(jì)元素出現(xiàn)的次數(shù)。最后按順序輸出數(shù)據(jù)集里面的元素。

但是桶排序非常浪費(fèi)空間, 比如需要排序的范圍在0~2000之間, 需要排序的數(shù)是[3,9,4,2000], 同樣需要2001個(gè)空間

注意: 桶排序不能排序小數(shù)

以下為從小到大代碼實(shí)現(xiàn)

#!/usr/bin/env python
# coding:utf-8
def bucketSort(nums):
  # 選擇一個(gè)最大的數(shù)
  max_num = max(nums)
  # 創(chuàng)建一個(gè)元素全是0的列表, 當(dāng)做桶
  bucket = [0]*(max_num+1)
  # 把所有元素放入桶中, 即把對(duì)應(yīng)元素個(gè)數(shù)加一
  for i in nums:
    bucket[i] += 1
  # 存儲(chǔ)排序好的元素
  sort_nums = []
  # 取出桶中的元素
  for j in range(len(bucket)):
    if bucket[j] != 0:
      for y in range(bucket[j]):
        sort_nums.append(j)
  return sort_nums
nums = [5,6,3,2,1,65,2,0,8,0]
print "腳本之家測(cè)試結(jié)果:"
print bucketSort(nums)
"""
[0, 0, 1, 2, 2, 3, 5, 6, 8, 65]
"""

運(yùn)行結(jié)果:

總體來(lái)說(shuō),桶排序的優(yōu)點(diǎn)就是特別快,真的是特別快!特別快!特別塊!而缺點(diǎn)就是特別耗資源,如果數(shù)據(jù)取值的范圍是0---1010, 就要申請(qǐng)一個(gè)大小為1010的數(shù)組,想想這得多耗內(nèi)存空間。闊怕!且桶排序只能排序大于零的整數(shù)。

PS:關(guān)于排序算法的詳細(xì)說(shuō)明還可參考本站在線(xiàn)工具:

在線(xiàn)動(dòng)畫(huà)演示插入/選擇/冒泡/歸并/希爾/快速排序算法過(guò)程工具
http://tools.jb51.net/aideddesign/paixu_ys

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python加密解密算法與技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門(mén)與進(jìn)階經(jīng)典教程

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Windows下PyMongo下載及安裝教程

    Windows下PyMongo下載及安裝教程

    這篇文章主要介紹了Windows下PyMongo下載及安裝教程,本文講解了源碼安裝方法和exe軟件安裝方法,需要的朋友可以參考下
    2015-04-04
  • 利用Hyperic調(diào)用Python實(shí)現(xiàn)進(jìn)程守護(hù)

    利用Hyperic調(diào)用Python實(shí)現(xiàn)進(jìn)程守護(hù)

    這篇文章主要為大家詳細(xì)介紹了利用Hyperic調(diào)用Python實(shí)現(xiàn)進(jìn)程守護(hù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Python reduce()函數(shù)的用法小結(jié)

    Python reduce()函數(shù)的用法小結(jié)

    reduce()函數(shù)即為化簡(jiǎn)函數(shù),它的執(zhí)行過(guò)程為:每一次迭代,都將上一次的迭代結(jié)果,需要的朋友可以參考下
    2017-11-11
  • 教你如何使用Python快速爬取需要的數(shù)據(jù)

    教你如何使用Python快速爬取需要的數(shù)據(jù)

    學(xué)點(diǎn)數(shù)據(jù)爬蟲(chóng)基礎(chǔ)能讓繁瑣的數(shù)據(jù)CV工作(Ctrl+C,Ctrl+V)成為自動(dòng)化就足夠了.作為一名數(shù)據(jù)分析師而并非開(kāi)發(fā)工程師,需要掌握的爬蟲(chóng)必備的知識(shí)內(nèi)容,能獲取需要的數(shù)據(jù)即可 ,需要的朋友可以參考下
    2021-06-06
  • TOPI如何使TVM代碼不那么樣板化

    TOPI如何使TVM代碼不那么樣板化

    這篇文章主要為大家介紹了TOPI如何使TVM代碼不那么樣板化實(shí)現(xiàn)過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 使用Python構(gòu)建Hopfield網(wǎng)絡(luò)的教程

    使用Python構(gòu)建Hopfield網(wǎng)絡(luò)的教程

    這篇文章主要介紹了使用Python構(gòu)建Hopfield網(wǎng)絡(luò)的教程,本文來(lái)自于IBM官方網(wǎng)站的技術(shù)文檔,需要的朋友可以參考下
    2015-04-04
  • Python用csv寫(xiě)入文件_消除空余行的方法

    Python用csv寫(xiě)入文件_消除空余行的方法

    今天小編就為大家分享一篇Python用csv寫(xiě)入文件_消除空余行的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • Python字典的核心底層原理講解

    Python字典的核心底層原理講解

    今天小編就為大家分享一篇關(guān)于Python字典的核心底層原理講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • Python的類(lèi)實(shí)例屬性訪(fǎng)問(wèn)規(guī)則探討

    Python的類(lèi)實(shí)例屬性訪(fǎng)問(wèn)規(guī)則探討

    這篇文章主要介紹了Python的類(lèi)實(shí)例屬性訪(fǎng)問(wèn)規(guī)則,本文總結(jié)了一些對(duì)C++和Java程序員來(lái)說(shuō)不是很直觀的地方來(lái)說(shuō)明Python中的類(lèi)實(shí)例屬性訪(fǎng)問(wèn),需要的朋友可以參考下
    2015-01-01
  • python3的url編碼和解碼,自定義gbk、utf-8的例子

    python3的url編碼和解碼,自定義gbk、utf-8的例子

    今天小編就為大家分享一篇python3的url編碼和解碼,自定義gbk、utf-8的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08

最新評(píng)論