可视化桶排序

Posted 多米学算法

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可视化桶排序相关的知识,希望对你有一定的参考价值。

前言

可视化桶排序可视化桶排序可视化桶排序

概念介绍

概念介绍

  • 桶排序是计数排序的升级版

  • 它利用函数的映射关系,将待排序元素分到有限的桶里,然后桶内元素再进行排序(可能是别的排序算法),最后将各个桶内元素输出得到一个有序数列

原理讲解

我们以[12 8 3 24 21 6 11 15 22 9]这个序列为例说明桶排序算法的实现原理

  1. 当未开始排序时,此时效果如下图


    可视化桶排序

  2. 首先我们新建三个桶,桶1放置0-9范围内的数据,桶2放置10-19范围内的数据,桶3放置20-29范围内的数据,此时效果如下图


    可视化桶排序

  3. 开始遍历待排序数列,将第一个元素12放到桶2中,此时效果如下图


    可视化桶排序

  4. 继续遍历待排序数列,将第二个元素8放到桶1中,此时效果如下图


    可视化桶排序

  5. 继续遍历待排序数列,将第三个元素3放到桶1中,此时效果如下图


    可视化桶排序

  6. 继续遍历待排序数列,将第四个元素24放到桶3中,此时效果如下图


    可视化桶排序

  7. 继续遍历待排序数列,将第五个元素21放到桶3中,此时效果如下图


    可视化桶排序

  8. 继续遍历待排序数列,将第六个元素6放到桶1中,此时效果如下图


    可视化桶排序

  9. 继续遍历待排序数列,将第七个元素11放到桶2中,此时效果如下图


    可视化桶排序

  10. 继续遍历待排序数列,将第八个元素15放到桶2中,此时效果如下图


    可视化桶排序

  11. 继续遍历待排序数列,将第九个元素22放到桶3中,此时效果如下图


    可视化桶排序

  12. 继续遍历待排序数列,将第十个元素9放到桶1中,此时效果如下图


    可视化桶排序

  13. 至此,所有元素均放到桶中,此时效果如下图


    可视化桶排序

  14. 接下来进行各个桶中数列自排序(排序算法可以任意选择)。首先桶1中数列自排序,此时排序完效果如下图


    可视化桶排序

  15. 接着桶2中数列自排序,此时排序完效果如下图


    可视化桶排序

  16. 最后桶3中数列自排序,此时排序完效果如下图


    可视化桶排序

  17. 至此,各个桶中元素自排序完成,此时效果如下图


    可视化桶排序

  18. 将桶中元素按顺序输出,得到一个排序后的数列,此时效果如下图


    可视化桶排序


    可视化桶排序


    可视化桶排序


时间复杂度

  • 桶排序的最好时间复杂度为O(N)

空间复杂度

  • 桶排序的空间复杂度为O(N+M);N为待排序元素个数,M为桶的个数

算法优缺点

  • 优点:速度快、稳定

    • 在额外空间充足的情况下,尽量增大桶的数量

    • 使用映射函数能够将输入的N个数据均匀的分配到K个桶中

  • 缺点:如果待排序元素数量多时需要大量内存消耗

效果展示

说明

 

以上是关于可视化桶排序的主要内容,如果未能解决你的问题,请参考以下文章

交互式条件直方图桶切片数据可视化

是否有 Kibana 可视化允许使用基于术语的存储桶对聚合数据进行数学运算?

vue全家桶+Echarts+百度地图,搭建数据可视化系统

vue全家桶+Echarts+百度地图,搭建数据可视化系统(接口篇)

grafana可视化配置图表histogram

冒泡排序算法可视化