【发布时间】:2011-01-07 11:44:12
【问题描述】:
这是一个描述:
它的操作类似于带有get、put 和remove 方法的常规映射,但有一个getTopKEntries(int k) 方法来获取按key 排序的top-K 元素:
对于我的特定用例,我在结构中添加、删除和调整许多值,但任何时候大约有 500-1000 个元素;我想有效地返回前 10 个键的条目。
- 我调用了
put和remove方法很多次。 - 我调用
getTopKEntries方法。 - 我多次调用
put和remove方法。 - 我调用
getTopKEntries方法。 - ...
我希望 O(1) get、put 和 remove 操作,并且 getTopKEntries 仅依赖于 K,而不依赖于地图的大小。
那么有效返回地图的前 K 个元素的数据结构是什么?
My other question 类似,但适用于返回地图的所有元素的情况,按键排序。
如果有帮助,键和值都是 4 字节整数。
【问题讨论】:
-
关键是什么? (直接还是指针?)
-
@Stephan Eggermont:键和值都是 4 字节整数。
标签: data-structures hash map hashmap sorted