哈希表搜索词在大文本.O(1)
Hash table for search words in large text. O(1)
我必须为大文本(搜索,粘贴,删除)创建操作速度为0(1)的哈希表。这是真的吗?如何减少碰撞?例子吗?后来我再也没有使用过c++。我找不到任何有字典的哈希表。
目标语言c++(仅STL)。
您可以使用C++11
标准的一部分unordered_map
或unordered_set
,或者如果C++11
不是一个选项,则使用这些容器的boost版本。如果您需要自己实现解决方案,我相信您可以使用其中任何一个的实现作为参考。
编辑:作为指针的amit,这仍然不是常量,因为你需要散列一个字符串,因此你需要遍历它至少一次。因此复杂度是O(|S|)
,其中S
是正在搜索的字符串。此外,复杂性是预期的 O(|S|)
,因为无论哈希函数碰撞有多好(除了可以使用完美哈希的极少数情况外,由于生日悖论,将以非常非常高的概率)。
相关文章:
- 如何搜索文本文件并以C++打印该行
- 简单的二分搜索对我不起作用。我正在尝试从文本文件中搜索单词
- 在排序文本文件中实现二叉搜索?
- 如何在文本文件中搜索员工记录(按名称)并仅显示其详细信息?
- C 搜索文本文件中多行分开的字符串
- 在文本文件中搜索int号码
- 如何在文本文件中逐行搜索
- 搜索文本文件并返回等号后的值
- C - 如何在文本文件中搜索学生记录
- 在特定字段中关键字搜索后,从文本文件中提取多个记录
- [在文本文件中搜索] [C 中的记事本 插件]
- 需要程序来搜索整个文本文件
- 使用前缀搜索文本文件
- 在 5000+ 文本文件中搜索特定字符串
- 在Visual Studios 2010的外部依赖项文件夹中搜索文本/代码
- 在文本文件中搜索字段名称,并将所有后续行返回到控制台 - C++
- 如何将字符串从文本文件读取到要搜索的向量中
- 在文本文件中搜索和替换
- 改进文本搜索功能
- 按文本搜索一行并在文本文件中删除它(从C#到C++/CLI)