【发布时间】:2013-08-18 19:59:39
【问题描述】:
我有许多排序整数列表,每个列表都少于 3600 个项目。我想尽可能地将它们保存在内存中,所以我正在寻找一种节省空间的数据结构。
最常见的操作是插入、成员资格测试和范围查询。
整数将主要在 1 到 100 亿范围内,但理论上可能存在一些极端情况,整数会低得多。
我一直在研究跳过列表,它们非常好,但我觉得那里可能有更有效的结构。
【问题讨论】:
-
数组不让我在插入时保持排序,对吧?
-
嗯...您可以在已排序的数组中插入一个元素,以便它进入正确的位置。
-
多少个列表?整数的范围是多少?有重复吗?操作是否有所需的时间复杂度,或者尽可能快?可以说什么元素被访问的频率(使写入磁盘成为可能)吗?
-
这些美国电话号码有可能吗?
-
不,他们不是。它们实际上是来自当前在此范围内的另一个表的自动增量 ID。由于我主要存储当前 ID(最后 3600 个),因此我希望这些数字在此范围内,因此请设置或采用可能指向较早 ID 的异常值。
标签: algorithm list sorting data-structures tree