美文网首页
经典排序算法-桶排序(Bucket sort)

经典排序算法-桶排序(Bucket sort)

作者: WX_WDN | 来源:发表于2017-03-12 18:30 被阅读508次

本篇为经典排序开篇故在此说一下排序的定义

所谓排序即将一组对象按照某种逻辑顺序重新排列的过程

---------格叽格叽-------------

太长不看版:

1、速度快

2、耗空间

3、稳定

先举个例子:班级里有五个同学在一次考试中分别考了3、2、7、5、1分(满分十分)

现在要按照从低到高的顺序名。桶排序顾名思义当然要有桶,因为满分是十分所以需要0~10共11个桶。桶准备好了现在就根据得分把这几个同学扔到对应分数的桶里。

bucket sort img00

放好以后从第一个桶开始把人依次取出来站好队,这样队伍顺序就是按照分数又低到高的排序了,没见过分数从低到高排的?倒过来抓人就好了!

代码如下图(bucket sort img01):

bucket sort img01

      现在可以发现三个特点:一是待排序对象的数量有限,二是需要穷举对象所有的类型(桶)占空间,第三排序的步骤不受待排序对象初始状态的影响所以稳定。

      以上只是简单的思想,还有诸多细节需要考虑,如分数会有重复的、分数可能是会有小数的。实际使用中不是只对数字排序的对象会有许多属性如何按照多属性排序?

现在来了一个插班生考了7分,这怎么办?7号桶里塞两个就好了...

bucket sort img02

代码中的遍历方法也需要改动一下,在原基础上加上对桶数量的遍历完整代码如下(bucket sort img03):

bucket sort img03

       目前还只是简版的桶排序,下面说一下同一桶中对象的排序(多字段排序),比如说先按分数排分数相同的安装名字的首字母字典排序(abcd...)。当然同一桶中的对象可以根据具体情况使用其它合适的排序算法如冒泡排序。

简单借助list进行处理,此处根据id排序。代码如下(bucket sort img04):

bucket sort img04
参考书籍:
1、《啊哈!算法》
2、《算法》(第四版)

相关文章

  • 排序算法(十一)桶排序

    排序算法(十一)桶排序   桶排序(Bucket sort)是计数排序改进版,同样属于非比较排序,该算法的基本思想...

  • 桶排序

    桶排序(BucketSort) 桶排序(Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组...

  • iOS 计数排序、基数排序、桶排序

      计数排序(Counting Sort)、基数排序(Radix Sort)、桶排序(Bucket Sort)适合...

  • 排序(2)

    线性排序:Bucket sort,Counting sort,Radix sort 桶排序 数据能划分为m个桶,桶...

  • 经典排序算法-桶排序(Bucket sort)

    本篇为经典排序开篇故在此说一下排序的定义 所谓排序即将一组对象按照某种逻辑顺序重新排列的过程 ---------格...

  • 桶排序算法

    学号:20021211189 姓名:赵治伟 【嵌牛导读】桶排序(Bucket sort)是计数排序算法[htt...

  • 11 基本排序算法:桶排序与计数排序

    一、桶排序 原理 桶排序(Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的...

  • 桶排序

    桶排序(Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶里。每个桶再个别...

  • 序言-算法

    此文集将介绍一些经典的算法,从经典的排序算法开始不定期的补充纠错更新 1、经典排序算法 1.1桶排序Bucket ...

  • 常用排序算法总结10一一桶排序

    定义 桶排序(英文:Bucket Sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶里。...

网友评论

      本文标题:经典排序算法-桶排序(Bucket sort)

      本文链接:https://www.haomeiwen.com/subject/jppakttx.html