基数排序

基数排序

  • 介绍

    • 1887年赫尔曼喝了礼发明的

    • 基数排序是桶排序的扩展

    • 实现思路

      • 将所有待比较数值统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后,数列就变成了一个有序序列。
    • 应用实例

      • 初始状态:53,3,542,748,14,214,使用基数排序,进行反序排序。

      • 根据0-9,对应10个桶

      • 轮数取决于最大数的位数

      • 排序

        • 第一轮排序:将每个元素的个位取出,然后看这个数应该放在哪个对应的桶(一个一维数组)比如,53,个位为3,放在标号为3的桶。3,放在标号为3的桶,放在53的下面,后面一次类推。然后,按照桶的顺序,依次取出数据,放入原来数组。54,2,53,3,14,214,748
          在这里插入图片描述
        • 第二轮排序:将每个元素的十位取出,按照第一轮排序的规则,进行放入桶(3这个元素,十位没有,视为0),然后桶排序,依次取出数据,放入原来数组,3,14,214,542,748,53 在这里插入图片描述
        • 第三轮排序:将每个元素的百位取出,按照第一轮的排序规则,进行放入桶(3这个元素,百位看作0),然后桶排序,依次取出数据,放入原来的数组3,14,53,214,542,748 在这里插入图片描述
  • 代码实现

    基数排序

    时间测试

    排序前的时间是=2019-08-06 16:49:06
    排序后的时间是=2019-08-06 16:49:06
    
  • 说明

    • 速度很快
    • 基数排序是经典的空间换时间的方式,占用内存很大,对海量的数据数据排序时,容易造成OutOfMemoryError
    • 基数排序是稳定的,若经过排序,这记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,说明排序算法是稳定的,否则不称为稳定。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值