你需要知道的九大排序算法Python实现之基数排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你需要知道的九大排序算法Python实现之基数排序相关的知识,希望对你有一定的参考价值。

八、基数排序

  1. 基本思想:基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog(r)m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的稳定性排序法。

  2. 算法实现:

    #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实现之基数排序的主要内容,如果未能解决你的问题,请参考以下文章

你需要知道的九大排序算法Python实现之堆排序

九大排序算法(Python 语言实现)

九大排序算法及其实现- 插入.冒泡.选择.归并.快速.堆排序.计数.基数.桶排序

带你整理面试过程中常考的九大排序算法

九大排序算法(C语言)

九大排序算法(C语言)