哈希表真的可以是O(1)吗?
编辑:
从技术上讲,这是正确的,因为哈希函数不需要使用键中的所有信息,因此可以是常数时间,而且一个足够大的表可以将冲突降到几乎恒定的时间。 这在实践中是正确的,因为随着时间的推移,只要选择哈希函数和表大小来最小化冲突,它就能计算出来,尽管这通常意味着不使用固定时间哈希函数。
哈希表真的可以是O(1)吗?
编辑:
您必须计算哈希,所以查找的数据大小的顺序是O(N)。在你做O(N)工作后,查找可能是O(1),但在我看来,这仍然是O(N)。
n
n
而且,除非您有一个完美的散列或一个大型哈希表,否则每个桶中可能有几个项,所以无论如何,它都会变成一个小的线性搜索。
O(log n)
O(1)
m
O(m)
m >> n
举报