基数排序

因为思想简单,所以就直接写出他的原理吧:

所谓基是指每个数他某一位的数字,比如948按基展开就是8,4,9,由于取模的良好特性我们便从个位数开始展开这个基,然后我们利用桶子可以推出他们临时优先级,直到最后一位的桶排结束,优先级别则整体确定。

比如:948 947 993 942 94 这四个数字

按个位优先级别是:942 993 94 947 948 

按十位优先级别:942 947 948 993 94

按百位优先级别:94 942 947 948 993

这样我们就完成了基数排序,如果数位更多则依次类推,我们在处理同位数基数时必须按照之前排好的顺序再次加入序列。因为有可能高位相等(因为可能有这种情况,则需要一个二维结构去存,对于位数不等的高位需要默认为零),低位有大小之分,这也是基数排序的巧妙的地方,这个方法应该会特别适合大数排序。

具体步骤如下:

1.找出最大值,拆分位数,得到基数排序总次数

2.开始对每一位进行桶排

3.桶排结束后,按桶排结果,把桶里的数字按顺序填入原序列

4.end,总时空复杂度为o(n)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值