我有大量的大哈希,其中包含用符号索引的数字。但是,对于这些数据,我还需要能够从每个哈希中快速检索n个最高值(带有相应的键)(但我还需要通过键保持快速访问)。很快,我理解最坏的O(logn)左右,因为哈希很长。插入或修改数据的频率远低于检索,因此它们可能很慢。
目前,我有一个数组与每个哈希配对,其中键以正确的顺序存储。这个解决方案使用了大量的内存,但在最坏的情况下这对我来说是可以接受的。
是否有更聪明的(如:更少丑陋或使用更少的内存)数据结构?请记住我只存储单个数字(和符号),所以(据我所知)任何存储引用都会大大增加内存使用量。
如果重要的话,我正在使用红宝石。
答案 0 :(得分:0)
将堆用于与散列配对的数组。这会给你O(log n)