什么是桶排序-琦玉老师课堂

什么是桶排序

- 比如要对一个包含数字0-1000的数字序列进行排序,如果要使用桶排序的话

  1. 首先给这个序列设置一个桶的区间值,比如这个数的范围是0-1000,那么我就设置0-100,100-200,200-300。。。900-1000分别为10个空桶,然后把需要排序的数,遍历一次,依次把对应的放入对应的桶中。
  2. 若其中的桶内的数据不为空,则对这个桶进行排序。
  3. 再依次按序的把每个桶的数据都按序放回原序列即可完成排序。

待排数字序列
993 321 323 12 2 239 123 341 192 432 231 343 576

桶内元素
0-10012,2
100-200123,192
200-300231
300-400321,341,343
400-500432
500-600576
600-700
700-800
800-900
900-1000993

每个内部排好序后再放回原序列或者一个新的序列列表

2 12 123 192 321 341 343 432 576 993
完成排序!

思想:桶排序最好情况下使用线性时间O(n),桶排序的时间复杂度,取决与对各个桶之间数据进行排序的时间复杂度,因为其它部分的时间复杂度都为O(n)。很显然,桶划分的越小,各个桶之间的数据越少,排序所用的时间也会越少。但相应的空间消耗就会增大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值