【发布时间】:2009-03-01 20:00:22
【问题描述】:
以下是我需要的数据结构的一些限制条件。似乎没有一个常见的数据结构(我将在下面提到我想到的那些)适合所有这些。谁能推荐一个我可能没有想到的?
- 我需要能够通过无符号整数键执行查找。
- 要存储的项目是用户定义的结构。
- 这些索引将是稀疏的,通常非常稀疏。常规数组已淘汰。
- 每个索引的频率分布不均匀,小索引比大索引更频繁。
- N 通常很小,可能不会大于 5 或 10,但我不想过分依赖它,因为它有时可能会大得多。
- 常数项很重要。当 N 很小时,我需要非常快速的查找。我已经尝试过通用哈希表,根据经验,它们太慢了,即使 N=1,也意味着没有冲突,这可能是因为涉及的间接数量。不过,我愿意接受有关利用上述其他约束的专用哈希表的建议。
- 只要检索时间快,插入时间不很重要。即使是 O(N) 的插入时间也足够了。
- 空间效率并不是非常重要,但重要的是不要只使用常规数组。
【问题讨论】:
-
像非常具体的约束一样,提供了一个有趣且可能非常有用的答案。您使用的语言是否假定边界检查可能会有所作为。如果您使用某些具有非原始结构的 .Net 方法,则不会内联哪些颜色的某些东西
标签: performance language-agnostic optimization data-structures