我想在哈希表中找到前 10 個元素。哈希表包含 250000 個元素,這些元素只是整數值。我不想對整個表進行排序。當我找到前 10 個元素時,對我來說就足夠了,其余的并不重要。最快(RUNT?ME)的方法是什么?也許堆排序?C
uj5u.com熱心網友回復:
我假設整數在一個可以迭代的集合中。
想象一下,您需要找到單個最大元素 - 一旦跟蹤您迄今為止看到的最大元素,您就可以遍歷集合。
現在針對您目前看到的前兩個元素修改上述方法。
...
現在針對您目前看到的前十個元素修改上述方法。
這種“演算法”具有線性復雜性,這是它所能得到的。還有其他實作線性時間的方法——所有這些方法都比你從 Heapsort 中得到的要好。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/413510.html
標籤:
