Bucket Sort是否要求您事先知道值的范围



我正在学习bucket排序,似乎很多材料都坚持认为当键值为"均匀分布并且当用于对来自已知范围的整数进行排序时";。我理解均匀分布的部分,但你也必须知道范围吗?如果没有提供范围,那么在bucket排序期间创建辅助数组时,是否可以简单地创建一个可以自行扩展的动态数组(ArrayList(?

如果您不知道范围并满足值1000000,它是否属于第一个bucket?到第10桶?到第1000桶?

假设你认为它属于第10个bucket(每个bucket指100000个值(。但下一个值是10000,您需要制作100个桶。下一个是100000 000,现在你需要10000个桶(大多数都是空的!(。。。

了解价值范围和分布有助于组织正确的桶结构,以提供最佳排序时间。

如果对整数类型进行排序,最大范围由整数类型中的位数表示,对于32位整数,最大范围为2^32。

最新更新