当前位置: 首页 > Web前端 > HTML

问题29:如何理解桶排序?

时间:2023-04-02 17:50:39 HTML

什么是桶排序?桶排序是计数排序的升级版,在某些排序场景下不能使用计数排序(值越界或非整数)。将数据分成有限个桶,然后对每个桶分别进行排序(可以使用其他排序算法或者继续递归使用桶排序)算法描述设置n个空桶,并确定每个桶的范围;遍历输入数据,将数据一条一条放入对应的桶中;对每个可以排序的桶进行排序(桶中的数大于1);将排序后的桶拼接成栗子,每个桶代表一个区间,区间内可以容纳一个或多个元素。桶排序的第一步是创建这些桶,并确定每个桶的范围这时候,有人会问题,你怎么知道要创建多少个桶?每个桶的范围是多少?创建多少个bucket以及如何确定bucket的范围,有很多种不同的方式,这里根据实际情况只定义其中一种,创建的bucket的个数等于原序列中元素的个数,除了最后一个bucket只包含最大的序列Value外,前面buckets的间隔按区间跨度(平均值)=(最大值-最小值)/(bucket个数-1)的比例确定第二步就是遍历原序列,把元素按照编号放入各个桶第三步,排序每个桶里面的元素(很明显,只需要对第一个桶进行排序)最后一步是遍历所有的桶并输出所有元素0.5,0.84,2.18,3.25,4.5大经典排序算法漫画:什么是桶排序?文章内容/灵感借鉴自以下内容【持续维护/更新500+前端面试题/笔记】https://github.com/noxussj/In...【大数据可视化图表插件-in]https://www.npmjs.com/package...【使用THREE.JS实现3D城市建模(珠海市)】https://3d.noxussj.top/