如何在恒定时间内查找N大小列表中的整数?

时间:2015-04-03 04:34:18

标签: algorithm list constant-time

列表的属性:

  1. 的大小必须为N,其中N是整数的数量

  2. 没有空单元

  3. 数字可能不是完全相继的(即{-23,-15,-3,1,2,6,7,8,15,100})

  4. 插入/查找需要处于不变的时间。

  5. 我的第一直觉是使用哈希表,但这会创建未使用的单元格,其中跳过数字。

    是否有任何方法可以构建这样的列表,以便在该列表中存在一个数字时以恒定时间检查?

1 个答案:

答案 0 :(得分:1)

根据我的评论,您可以使用Set,根据具体用例,如果需要,您可以查看Java HashSetLinkedHashSet等内容。保持根据doc应该是恒定时间的顺序:

  

与HashSet类似,它为基本提供了恒定时间性能   操作(添加,包含和删除),假设哈希函数   在桶中适当地分散元素。

如果您正在寻找其他平台上的解决方案,可能有相同的实现,或者您可以检查Java的源代码并自行实现。

相关问题