哈希表搜索词在大文本.O(1)

Hash table for search words in large text. O(1)

本文关键字:文本 搜索 哈希表      更新时间:2023-10-16

我必须为大文本(搜索,粘贴,删除)创建操作速度为0(1)的哈希表。这是真的吗?如何减少碰撞?例子吗?后来我再也没有使用过c++。我找不到任何有字典的哈希表。
目标语言c++(仅STL)。

您可以使用C++11标准的一部分unordered_mapunordered_set,或者如果C++11不是一个选项,则使用这些容器的boost版本。如果您需要自己实现解决方案,我相信您可以使用其中任何一个的实现作为参考。

编辑:作为指针的amit,这仍然不是常量,因为你需要散列一个字符串,因此你需要遍历它至少一次。因此复杂度是O(|S|),其中S是正在搜索的字符串。此外,复杂性是预期的 O(|S|),因为无论哈希函数碰撞有多好(除了可以使用完美哈希的极少数情况外,由于生日悖论,将以非常非常高的概率)。