【发布时间】:2015-07-10 18:40:44
【问题描述】:
我有大量包含用符号索引的数字的大哈希。但是,对于这些数据,我还需要能够从每个散列中快速检索 n 个最高值(使用相应的键)(但我也需要通过键保持快速访问)。很快,我知道最坏的情况是 O(logn) 左右,因为散列很长。插入或修改数据的频率远低于检索数据,因此它们可能很慢。
目前,我将数组与每个哈希配对,其中键以正确的顺序存储。此解决方案使用大量内存,但在最坏的情况下这对我来说是可以接受的。
是否有任何更智能的(例如:不那么丑陋或使用更少的内存)数据结构可供使用?请记住,我只存储单个数字(和符号),因此(据我所知)任何引用存储都会大大增加内存使用量。
如果这很重要,我正在使用 ruby。
【问题讨论】:
-
只有一个答案,9 小时后没有 cmets。你一定很失望。我怀疑原因是读者找不到改进你所做工作的方法。如果您可以编辑以提供更多信息,您可能会引发更多答案,但这并不确定,因为您的问题已经过时了。以下是我想知道的一些事情: 1. 应用程序是什么; 2.假设你有一个哈希数组,你如何从数组中选择一个哈希来修改或检索值(续..)
-
(...cont.) 3. 您是否主要使用相当静态的哈希进行查找,或者对哈希进行频繁更改(添加和删除键、更改值等); 4. 如果您想要给定哈希的顶部
n值的键值对,n相对于哈希的大小有多大,您是否会检查所有n对(按值递减的顺序)。
标签: ruby sorting data-structures hashmap