首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Bucket算法进行排序

使用Bucket算法进行排序
EN

Stack Overflow用户
提问于 2018-10-04 09:21:32
回答 1查看 76关注 0票数 0

在排序时,到底是什么定义了存储桶的大小?与计数时一样,大小从0到max,基数中的桶大小是0-9。

EN

回答 1

Stack Overflow用户

发布于 2018-12-01 13:12:18

Bucket Sort中的"buckets“数量对应于并依赖于要排序的的可能值的范围。例如,如果我考虑以下值:

代码语言:javascript
运行
复制
1, 4, 10000, 5, 12

我排序的值的范围是9999。

代码语言:javascript
运行
复制
range = (highest value) - (lowest value) = 10000 - 1 = 9999 buckets

这意味着我需要9999个存储桶来尽可能高效地对这些值进行排序。这是因为Bucket排序不是比较排序。这意味着不会通过值之间的比较来确定它们的顺序。它们被简单地放在代表它们的值的存储桶中。存储桶排序因此被誉为O(n),但由于需要创建的存储桶数量,它实际上往往效率要低得多。

在前面的示例中,我们只对5个值进行了排序,但需要创建10,000个以上的存储桶。当存储桶数量在O(N^2)的时间复杂度内时,这是非常低效的,这使得存储桶排序与传统的比较排序算法一样耗时(如果不是,则更差)。但是,如果条件合适,则Bucket Sort可能是一个很好的选择。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52637671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档