利用radix sort 基排序对数字进行排序,指定基的基排序实现

news/2024/7/4 23:25:56

基排序的概念就不做解释了,要说的一点是基排序中的这个基是可以任意选择的,只不过网上的大部分radix sort代码都是将10作为了基,我的这个代码是可以任意指定基的,代码如下:

import random
def numerical_radix_sort(num_list, b):
    maxmium = num_list[0]
    for i in num_list:
        if maxmium < i:
            maxmium = i
    print(maxmium)
    exp_base = 1
    while maxmium > b ** exp_base:
        exp_base = exp_base + 1

    i = 0
    while i < exp_base:
        bucket = {}
        for x in range(b):
            bucket[x] = []

        for x in num_list:
            radix = int( (x/b**i) ) % b
            bucket[radix].append(x)

        j = 0
        for k in range(b):
            if(len(bucket[k])) != 0:
                for y in bucket[k]:
                    num_list[j] = y
                    j = j + 1

        i = i + 1
    return num_list

###下面的代码是测试代码

num_list = [random.randint(0,100) for _ in range(20)]
base = 16
print(num_list)
num_list = numerical_radix_sort(num_list,base)
print(num_list)

运行结果为:

[9, 19, 86, 11, 1, 47, 17, 13, 70, 51, 82, 18, 39, 39, 43, 75, 72, 26, 29, 100]
100
[1, 9, 11, 13, 17, 18, 19, 26, 29, 39, 39, 43, 47, 51, 70, 72, 75, 82, 86, 100]

 


http://www.niftyadmin.cn/n/3657685.html

相关文章

模块分解原理与三权分立

模块分解原理与三权分立相关文章链接&#xff1a;模块分解原理探索前一篇模块分解原理探索的文章中谈到了模块需要按专业领域分解&#xff0c;怎么这篇文章的标题上突然冒出了三权分立&#xff0c;软件怎么和政治制度扯到一起去了&#xff1f;表面看这两个东西好像是风牛马不及…

接口关系稳定原理探索

接口关系稳定原理探索相关文章链接&#xff1a; 模块分解原理探索模块分解原理与三权分立接口设计定理 在Robert C.Martin著的《敏捷软件开发&#xff0d;原则、模式与实践》一书中&#xff0c;提出了许多的设计原则&#xff0c;这里想对其中的一条稳定依赖原理&#xff08;中文…

torch.unique()

torch.unique()的功能类似于数学中的集合&#xff0c;就是挑出tensor中的独立不重复元素。 这个方法的参数在官方解释文档中有这么几个:torch.unique(input, sortedTrue, return_inverseFalse, return_countsFalse, dimNone) input: 待处理的tensor sorted&#xff1a;是否对…

Silverlight的 InLine Xaml 功能 - 让您可轻易地动态产生Xaml代码

过去我们一直都是通过.xaml文件中的内容来设计Silverlight中的每一个元素的外观长相&#xff0c;有没有想过&#xff0c;如果需要动态的产生xaml代码&#xff0c;而不想通过.xaml文件来完成的时候该怎么办?  有这种需要吗?有的&#xff0c;而且对于ASP.NET开发人员来说&…

torch.nonzero()

pytorch中的torch.nonzero()&#xff0c;就是返回张量中元素不为0的元素的索引。 举例子如下&#xff1a; import torchx torch.tensor([4,0,1,2,1,2,3]) result 1x print(result)print(result.nonzero()) #输出了不为0值的索引 print(result.nonzero().view(-1))#将结果转…

Keep Walking (转贴去年写的BLOG)

这篇文章&#xff0c;其实是去年12月写的&#xff0c; 换了BLOG&#xff0c;但是舍不得丢掉&#xff0c;所以移过来...从去年&#xff0c;到今年又改变很多了&#xff0c;VS2008又即将推出&#xff0c;时间过得真快...    昨天和一位同样在信息出版界的朋友小聊了一下&…

好用的网站

http://www.zuohaotu.com/image-merge.aspx 线上图片拼接 http://www.pdfdo.com/pdf-merge.aspx pdf拼接

Silverlight的开发工具

实在是太多人问到Sivlerlight的开发工具了&#xff0c;如果您现在要开发 Silverlight应用程序也好、RIA也好、想要在ASP.NET当中整合Silverlight也好&#xff0c;请安装底下这些开发工具&#xff0c;注意&#xff0c;请依序安装。底下说明每一个工具的用途以及为何需要安装...笔…