根据this,散列表中搜索的时间复杂度为O(1)。在碰撞中如何从HashTable中检索数据?
但是,如果有碰撞,那么显然这应该是O(1)+的东西。
我的问题是:
当你从一个哈希表说
get(someKey)
,散列函数应用到someKey,并将数据直接从该位置检索。
但想象一下Seperate Chaining用于冲突解决。并且想象一下,在我们的散列函数应用于它们之后,someKey和someOtherKey具有相同的输出。说这是值“25”。
所以当我说
get(someKey)
我会从位置 “25” 获得的数据。这使它成为O(1)。大。
然而,当我说
get(someOtherKey)
现在someOtherKey被链接到someKey是。
当someOtherKey应用哈希我得到25
我如何获得我reqiure价值?什么是内部?还有其他的桌子吗?算法如何流动?是否有其他表格用于存储所有的碰撞?
谢谢。我希望我的问题很清楚!
这是一个很好的资源:http://www.youtube.com/watch?v=UPo-M8bzRrc&list=EC4BBB74C7D2A1049C&index=21 –