【发布时间】:2022-01-16 19:40:29
【问题描述】:
我想在哈希表中找到前 10 个元素。哈希表包含 250000 个元素,这些元素只是整数值。我不想对整个表进行排序。当我找到前 10 个元素时,对我来说就足够了,其余的并不重要。最快(RUNTİME)的方法是什么?也许堆排序? C++
【问题讨论】:
-
哈希表包含键值对,所以目前的问题没有什么意义。如果您提及用于解决此问题的特定编程语言,它也会很有用。
-
我使用的是 C++ 语言
-
如果您不检查整个表格,您将无法知道您拥有前 10 个元素。您不必对所有内容进行排序即可获得它们。哈希在这里无关紧要。
-
“获取前 K 项”是一个经典问题,通常使用 K 项的最小堆来解决。见this answer。调整该答案以找到前 10 个项目(构建一个最小堆而不是最大堆,并切换比较)。基本上改了3行代码。
-
@PaulMcKenzie 这是最快的方法吗?因为我想要找到前 10 名的最快方法