2 简单的基数排序Java

桶式排序是一种简单的基数排序。桶式排序(这里以对若干个正整数的排序为例描述求解过程):待排序的正整数存放在一维数组中,此外还有一个整型的二维数组,其中行下标从0~9,列下标从0~n – 1。在这里,n是待排序的数组中元素的数目。二维数组的每行称为一个桶。编写一个程序,读入15个正整数,并按从小到大的顺序排序。桶式排序的算法如下:

遍历一维数组中的每个元素,并根据它的个位将每个值安排在桶数组的某行中。例如,97安排在行7,3安排在行3,而100安排在行0——这个过程叫分桶。

在桶数组内循环,并将值复制回到最初的数组——这个过程叫收集。上面的数值在一维数组中的新顺序是100、3和97。

接下来依次取一维数组中所有数字的十位,百位,千位等等,并按取出的十位,百位,千位等位上的数字不断分桶和放回原数组;重复这个过程(分桶---收集),当处理完了一维数组中最大数字的最高位时,就停止这个过程。

例如,在对数组进行第2轮处理时,100安排在行0,3安排在行0(它仅有一个数位),而97安排在行9。一维数组中值的顺序是100、3和97。在第3轮处理时,100安排在行1,3安排在行0,而97安排在行0(在3之后)。桶式排序可以确保在处理了最大数字的最高位之后正确排列所有值的顺序。

注意,桶的二维数组的大小是要排序的整数数组大小的10倍。这种排序方法的性能比冒泡排序方法要高,但需要更多的存储空间。冒泡排序仅仅需要为待排序的数据配置内存空间,整个排序过程中不再需要额外的空间;然而,桶式排序中待排数据需要存放空间&#

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值