哈希/地图,可快速访问n个最高值

时间:2015-07-10 18:40:45

标签: ruby sorting data-structures hashmap

我有大量的大哈希,其中包含用符号索引的数字。但是,对于这些数据,我还需要能够从每个哈希中快速检索n个最高值(带有相应的键)(但我还需要通过键保持快速访问)。很快,我理解最坏的O(logn)左右,因为哈希很长。插入或修改数据的频率远低于检索,因此它们可能很慢。

目前,我有一个数组与每个哈希配对,其中键以正确的顺序存储。这个解决方案使用了大量的内存,但在最坏的情况下这对我来说是可以接受的。

是否有更聪明的(如:更少丑陋或使用更少的内存)数据结构?请记住我只存储单个数字(和符号),所以(据我所知)任何存储引用都会大大增加内存使用量。

如果重要的话,我正在使用红宝石。

1 个答案:

答案 0 :(得分:0)

将堆用于与散列配对的数组。这会给你O(log n)