桶分类分析(我要检查桶是否为空几次)

时间:2019-03-21 07:10:33

标签: sorting bucket

我需要对10个元素分类多少个桶?可以说每个记录都有一个密钥,我需要多少次才能获得密钥组成。最后,我要检查存储桶是否为空?

我认为每个答案都是10,但是我很困惑。

1 个答案:

答案 0 :(得分:1)

根据您希望如何平衡空间和时间复杂性,存储桶排序可以具有不同数量的存储桶。如果在这种情况下使用10个或更多存储桶,并且每个键都有自己的存储桶,则 n 元素和N个存储桶的运行时间将为O(n + N)。否则,运行时将取决于每个存储桶中使用的排序算法,因为可能有多个元素的存储桶。

该算法假定每个元素都已经有一个与之关联的键,因此,如果我了解您的要求,则需要将每个元素“存储到存储桶中”或“输出排序列表。

最后,您不一定需要检查存储桶是否为空,这取决于您的算法如何处理每个单个存储桶的排序。给定元素 [k,e] (其中 k 是键,而 e 是元素),它将被放置在存储区 k中该存储桶是否为空。您的算法可以为每个存储桶维护一个排序列表,或者可以在输出最终排序列表之前对所有存储桶进行排序。这会影响空检查的数量。最后,当算法输出排序后的列表时,它将跳过空的存储桶,因此每次可能需要检查是否为空。