java中的排序算法——基数排序

基数排序

原理:将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串和特定 格式的浮点数,所以基数排序也不一定只能用于整数。当数据量很多,而数据值较小时具有效率优势。
Java代码如下:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

运行结果:
在这里插入图片描述

效率: 在绝大多数的情况下,算法的执行效率为O(N*logN),和快速排序算法相同,与归并排序类似,基数排序 所需要的存储空间是快速排序的两倍

时间复杂度
循环次数,最大位数D,代码中的循环:五次循环,次数10或N,O(N)
复杂度O(DN)

稳定性
当两个数相等时,每次都入同一个桶,同一个桶内的先后顺序维持原本的先后顺序,稳定排序。

扩展:基数未必取10,r进制可以取r,则每一位有r个桶,复杂度O(Nlog®M),M是整个数组中最大的数值,log®M是在r 进制下最大的位数。

上一篇:java中的排序算法——堆排序
下一篇:java中的排序算法——快速排序

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值