【发布时间】:2014-05-23 16:21:52
【问题描述】:
朋友们,我知道 Hastable 无法排序,但由于复杂性好,我必须使用 Hashtable 而不是字典。现在我处于需要从 Hashtable 中获取顶部(最大)3 个元素的情况。在我处理数百万行时,请告诉我任何最简单有效的方法。
.....................
输入
.....................
hashtable.Add("A", 1000);
hashtable.Add("B", 500);
hashtable.Add("C", 700);
hashtable.Add("D", 800);
hashtable.Add("E", 400);
hashtable.Add("F", 300);
.....................
输出
.....................
("A", 1000), ("D", 800) and ("C",700)
【问题讨论】:
-
您对“前 3 个元素”的定义是什么?我注意到,在您的问题中,您正确地指出 Hashtables 无法排序,所以看起来您回答了自己的问题。
-
“我必须使用哈希表而不是字典”?你在说什么样的“复杂性”?
-
I must have to use Hashtable over dictionary请注意,Dictionary也没有排序。如果您需要订购,您可以使用SortedList或SortedDictionary -
为什么不直接使用 OrderedDictionary?看看这个:msdn.microsoft.com/en-us/library/…
-
时间复杂度。不要担心这些事情,请告诉我仅在 Hashtable 中排序的方法。
标签: c# .net dictionary hashtable time-complexity