基数排序

  • 原理
    基数排序需要借助 0 1 2 3 4 5 6 7 8 9
    先将个位上的数字依次从上到下放于对应的位置之上,然后按照从左到右,从上到下得到新序列
    之后将十位上的数字依次从上到下放于对应的位置之上,然后按照从左到右,从上到下得到新序列
    然后是百位,千位 …
    不理解的可以看 🖱️视频讲解,或者结合下面的例子

  • 复杂度
    时间复杂度:平均和最坏情况下都是 O(d(n+rd)) ,其中,n 为序列中的关键字数; d 为关键字的关键字位数,如 930,由3位组成,d=3; ra 为关键字基的个数,这里的基指的是构成关键字的符号,如关键字为数值时,构成关键字的符号就是 0 ~ 9 这些数字,一共有十个,即 ra =10。
    空间复杂度:O(rd)

  • 实践
【例1】现有 25  15  71  34  91 五个数字,进行升序排列

个位
10   1   2   3   4   5   6   7   8   9 
      71          34  25    
      91              15
得到:71 91 34 25 15     

十位
20   1   2   3   4   5   6   7   8   9 
      15  25  34              71      91
得到:15 25 34 71 91

【例2】现有 505  008  109  930  063 五个数字,进行升序排列

个位
10    1    2    3    4    5    6    7    8    9 
  930            063       505            008  109
    
得到:930  063  505  008  109

十位
20   1   2   3   4   5   6   7   8   9 
  505         930         063
  008
  109
得到:505  008  109  930  063

百位
30   1   2   3   4   5   6   7   8   9 
  008 109             505             930
  063
得到:008  063  109  505  930

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

头疼小宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值