国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現的基數排序算法原理與用法實例分析

2020-02-16 10:49:17
字體:
來源:轉載
供稿:網友

本文實例講述了Python實現的基數排序算法。分享給大家供大家參考,具體如下:

基數排序(radix sort)屬于“分配式排序”(distribution sort),又稱“桶子法”(bucket sort)或bin sort,顧名思義,它是透過鍵值的部份資訊,將要排序的元素分配至某些“桶”中,藉以達到排序的作用,基數排序法是屬于穩定性的排序,其時間復雜度為O (nlog(r)m),其中r為所采取的基數,而m為堆數,在某些時候,基數排序法的效率高于其它的穩定性排序法。

實現代碼如下:

#-*- coding: UTF-8 -*-import numpy as npdef RadixSort(a):  i = 0                       #初始為個位排序  n = 1                      #最小的位數置為1(包含0)  max = np.max(a)            #得到帶排序數組中最大數  while max/(10**n) > 0:       #得到最大數是幾位數    n += 1  while i < n:    bucket = {}               #用字典構建桶    for x in xrange(0,10):      bucket.setdefault(x, [])  #將每個桶置空    for x in a:                #對每一位進行排序      radix =(x / (10**i)) % 10  #得到每位的基數      bucket[radix].append(x) #將對應的數組元素加入到相應位基數的桶中    j = 0    for k in xrange(0, 10):      if len(bucket[k]) != 0:    #若桶不為空        for y in bucket[k]:     #將該桶中每個元素          a[j] = y            #放回到數組中          j += 1    i += 1if __name__ == '__main__':  a = np.random.randint(0, 1000, size = 10)  print "Before sorting..."  print "---------------------------------------------------------------"  print a  print "---------------------------------------------------------------"  RadixSort(a)  print "After sorting..."  print "---------------------------------------------------------------"  print a  print "---------------------------------------------------------------"

運行結果:

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數據結構與算法教程》、《Python加密解密算法與技巧總結》、《Python編碼操作技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》

希望本文所述對大家Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乌兰县| 丹寨县| 涿鹿县| 昌都县| 晋江市| 通城县| 漯河市| 瓮安县| 恭城| 阿尔山市| 南丹县| 汉中市| 买车| 城市| 西畴县| 雅江县| 张掖市| 溆浦县| 宜良县| 于都县| 肥东县| 景宁| 东乡县| 山阳县| 阿鲁科尔沁旗| 汪清县| 玛沁县| 呼玛县| 永清县| 林甸县| 广安市| 顺义区| 增城市| 甘洛县| 威远县| 黄冈市| 谷城县| 二连浩特市| 廉江市| 陇南市| 安国市|