[洛谷] 题解 P1923 / 基数排序 详解

本文深入探讨基数排序算法,从概念、时间复杂度分析到模拟过程,并展示了如何通过优化提高排序速度,包括10进制和16进制的实例演示。
摘要由CSDN通过智能技术生成

本文详细讲基数排序

1.基数排序是什么?

顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为 O ( n log ⁡ r m ) O (n\log_rm) O(nlogrm),其中 r r r 为所采取的基数,而 m m m 为堆数,在某些时候,基数排序法的效率高于其它的稳定性排序法。——来自 百度百科

其实就是说, n n n 个数,令 i i i 1 1 1 开始,以第 i i i 位为关键字
申请一个长度为 r r r 的桶,每个桶装 对于 a a a 数组中的每个数 a j a_j aj a j a_j aj 处于 r r r 进制的第 i i i

再把这些桶装的数按照入桶顺序倒出来,链接到一起。这么处理一直到 i i i 处于 r r r 进制的最高位,按照装桶法排序。

排完最高位,最后的按照这样排出来的数据一定是有序的。

2.详细的时间复杂度分析

时间复杂度大约是 O ( n log ⁡ r ( n ) ) O(n \log_r (n)) O(nlogr(n)), 其中 r r r进制

一般可以把 log ⁡ r ( n ) \log_r (n)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值