首页 > 代码库 > 你需要知道的九大排序算法【Python实现】之基数排序
你需要知道的九大排序算法【Python实现】之基数排序
八、基数排序
-
基本思想:基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog(r)m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的稳定性排序法。
-
算法实现:
#coding: utf-8 #!/usr/bin/python import random import math #随机生成0~100之间的数值 def get_andomNumber(num): lists=[] i=0 while i<num: lists.append(random.randint(0,100)) i+=1 return lists # 头部需导入import math def radix_sort(lists, radix=10): k = int(math.ceil(math.log(max(lists), radix))) bucket = [[] for i in range(radix)] for i in range(1, k+1): for j in lists: bucket[int(j/(radix**(i-1)) % (radix**i))].append(j) del lists[:] for z in bucket: lists += z del z[:] return lists a = get_andomNumber(10) print("排序之前:%s" %a) b = radix_sort(a) print("排序之后:%s" %b)
你需要知道的九大排序算法【Python实现】之基数排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。