可视化桶排序
Posted 多米学算法
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可视化桶排序相关的知识,希望对你有一定的参考价值。
前言
概念介绍
概念介绍
桶排序是计数排序的升级版
它利用函数的映射关系,将待排序元素分到有限的桶里,然后桶内元素再进行排序(可能是别的排序算法),最后将各个桶内元素输出得到一个有序数列
原理讲解
我们以[12 8 3 24 21 6 11 15 22 9]这个序列为例说明桶排序算法的实现原理
当未开始排序时,此时效果如下图
首先我们新建三个桶,桶1放置0-9范围内的数据,桶2放置10-19范围内的数据,桶3放置20-29范围内的数据,此时效果如下图
开始遍历待排序数列,将第一个元素12放到桶2中,此时效果如下图
继续遍历待排序数列,将第二个元素8放到桶1中,此时效果如下图
继续遍历待排序数列,将第三个元素3放到桶1中,此时效果如下图
继续遍历待排序数列,将第四个元素24放到桶3中,此时效果如下图
继续遍历待排序数列,将第五个元素21放到桶3中,此时效果如下图
继续遍历待排序数列,将第六个元素6放到桶1中,此时效果如下图
继续遍历待排序数列,将第七个元素11放到桶2中,此时效果如下图
继续遍历待排序数列,将第八个元素15放到桶2中,此时效果如下图
继续遍历待排序数列,将第九个元素22放到桶3中,此时效果如下图
继续遍历待排序数列,将第十个元素9放到桶1中,此时效果如下图
至此,所有元素均放到桶中,此时效果如下图
接下来进行各个桶中数列自排序(排序算法可以任意选择)。首先桶1中数列自排序,此时排序完效果如下图
接着桶2中数列自排序,此时排序完效果如下图
最后桶3中数列自排序,此时排序完效果如下图
至此,各个桶中元素自排序完成,此时效果如下图
将桶中元素按顺序输出,得到一个排序后的数列,此时效果如下图
时间复杂度
桶排序的最好时间复杂度为O(N)
空间复杂度
桶排序的空间复杂度为O(N+M);N为待排序元素个数,M为桶的个数
算法优缺点
优点:速度快、稳定
在额外空间充足的情况下,尽量增大桶的数量
使用映射函数能够将输入的N个数据均匀的分配到K个桶中
缺点:如果待排序元素数量多时需要大量内存消耗
效果展示
说明
以上是关于可视化桶排序的主要内容,如果未能解决你的问题,请参考以下文章
是否有 Kibana 可视化允许使用基于术语的存储桶对聚合数据进行数学运算?