【发布时间】:2019-01-14 02:20:20
【问题描述】:
需要设计一种数据结构,使得在95% 个案例中可以进行O(1) 次搜索,在5% 个案例中可以进行超过O(1) 次。我们能得到的最好的数据结构是什么?存储的元素可以是integer 或string。
PS:我的方法是使用哈希表。我知道它在大多数情况下都提供 O(1) 访问。但是我如何将其分类为 95% 和 5%。我也无法获得足够好的哈希函数。
如果那里只有字符串,我可以使用hash*33+c,但是作为整数的可能性呢?还有我应该使用的最佳表格大小是多少?
【问题讨论】:
-
你关心最坏的情况还是一般情况?
标签: data-structures hash