桶排序、计数排序、基数排序

桶排序
核心思想:将要排序的数据分到几个有序的桶中,每个桶中的数据再单独进行排序。桶内排完序后,再按顺序依次取出每个桶中的数据,组成的新序列就是排好序的数据了。
时间复杂度O(n)
桶排序应用条件:
首先,要排序的数据要很容易划分到m个桶中,并且桶与桶之间有着天然的大小顺序。
其次:数据在各个桶之间的分布是比较均匀的。
桶排序比较适用于外部排序中。所谓的外部排序就是数据存储在外部磁盘中,数据量大,内存有限。无法将数据全部加载到内存中。比如对电商双十一的订单数据按订单额进行排序。

计数排序
核心思想:当要排序的n个数据,所处的范围并不大的时候,比如最大值是k,我们就可以把数据划分成k个桶。每个桶内的数据都是相等的。比如考试成绩,当然如果考虑小数点时,可以乘以10小数转换成整数。
注意:计数排序只能用在数据范围不大的场景中,如果数据范围k比要排序的数据n大很多,就不能适应该排序方法了。如果要排序的数据是其它类型的,要在不改变其相对大小的情况下,转化为非负整数。

基数排序
核心思想:如对用户的手机号进行排序,所有手机号都是11位,先对最后一位来做排序,然后依次倒数第二位、倒数第三位…,到对第一位进行排序,所得的数据就是有序的了。
计数排序要求要排序的数据可以分割成独立的位来比较,而且位之间有递进关系。如果a数据的高位比比数据大,那剩下的就不用比较了。其次,每一位的数据范围不能太大。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值