铲斗分类分析(我检查铲斗是否为空的次数)

问题描述 投票:0回答:1

我需要多少桶来分类10个元素?让我们说每个记录都有一个密钥,我需要多少次才能获得密钥组合。最后,我检查桶是否为空多少次?

我觉得每个人的答案都是10,但我很困惑。

sorting bucket
1个回答
1
投票

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

该算法假设每个元素已经有一个与之关联的键,所以如果我理解你在问什么,当你将它们放入桶中时,你需要为每个元素“获取一次键组合”,同时输出已排序的元素名单。

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

© www.soinside.com 2019 - 2024. All rights reserved.