在 C++ 中包含 250,000 个整数元素的散列 table 中查找前 10 个元素
finding top 10 elements in the hash table which contains 250,000 integer elements in C++
我想在散列 table 中找到前 10 个元素。散列 table 包含 250000 个元素,这些元素只是整数值。我不想对整个 table 进行排序。当我找到前 10 个元素时,对我来说就足够了,其余的并不重要。最快(RUNTİME)的方法是什么?也许堆排序? C++
我假设整数在一个可以迭代的集合中。
假设您需要找到 单个 最大元素 - 您可以在跟踪到目前为止看到的最大元素后迭代集合。
现在针对您目前看到的前两个元素修改上述方法。
...
现在针对您目前看到的前十名元素修改上述方法。
这个“算法”具有线性复杂度,已经很好了。
还有其他实现线性时间的方法 - 比 Heapsort 更好。
我想在散列 table 中找到前 10 个元素。散列 table 包含 250000 个元素,这些元素只是整数值。我不想对整个 table 进行排序。当我找到前 10 个元素时,对我来说就足够了,其余的并不重要。最快(RUNTİME)的方法是什么?也许堆排序? C++
我假设整数在一个可以迭代的集合中。
假设您需要找到 单个 最大元素 - 您可以在跟踪到目前为止看到的最大元素后迭代集合。
现在针对您目前看到的前两个元素修改上述方法。
...
现在针对您目前看到的前十名元素修改上述方法。
这个“算法”具有线性复杂度,已经很好了。 还有其他实现线性时间的方法 - 比 Heapsort 更好。