打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
算法八:基数排序(O(d*(n+k)))
 
基数排序是按照要排序数字的从低到高位,依次循环排序,其中每位数字的排序算法要是稳定的算法。
 
如下图所示的,7个3位数排序步骤如下:
329                 720                 720                 329
457                 355                 329                 355
657                 436                 436                 436
839   ——>    45  ——>   839   ——>    457
436                 65                355                 657
720                 329                 457                 720
355                 839                 657                 839
 
算法的伪代码如下:
radix_sort(A, d)
1 for i in 1 to d
2          do use a stable sort to sort array A on digit i
 
引理1:给定n个d位数,每一个数位可以取k种可能的值。如果所用的稳定排序需要O(n+k)的时间,基数排序算法的时间则为O(d*(n+k))。
 
引理2:给定n个b位数,设任意的一个正整数r<=b,基数排序的算法时间复杂度为O((b/r)*(n+2^r))。 
注释:b位数指一共有b位的二进制数。
 
 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
基数排序
八大排序算法的Python实现
字符串基数排序
My SPACE: 笔试中常见数据结构的题
排序算法一览
常见的内排序和外排序算法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服