字典树
来源:互联网 发布:unity3d 角色动画 编辑:程序博客网 时间:2024/05/16 10:51
字典树又叫做单词查找树,是一种树形结构,是一种哈希树的变种,典型应用于统计,排序,和保存大量的字符串,所以常被搜索引擎用于文本词的统计。它的优点是利用字符串的公共前缀来减少查询时间,最大限度的减少无谓的字符串比较,查询效率比哈希树高。
性质
它有三个基本性质
根节点不包含字符除了根节点外的每一个节点都包含一个字符;
从根节点到某一个节点,路径上的字符连接起来,为该节点对应的字符串
每个节点的所有子节点不相同
字典树的构建
题目:给1000000个长度不超过10的单词,对于每一个单词,我们要判断他出现过没有,如果出现了。求第几次出现在第几个位置。
假设我要查询的单词是abcd,那么在它前面的单词中,以b,c,d,f之类开头的不必要考虑,只要找a开头的是否包含bcd就可以了。同理,只要考虑以b作为第二个字母的,一次次缩小范围和提高针对性。假设有b,abc,abd,bcd,abcd,efg,hi这6六个单词,则构建的树
对于每一个节点,从根遍历到他的过程就是一个单词,如果这个节点标记为红色,就表示这个节点的单词存在,否则不存在。
那么,对于一个单词,我们只要顺着他的根走到对应的节点,就可以看出这个单词是否存在,所得时间是单词的长度级别。
已知到由n个小写字母构成的平均长度是10的单词,判断是否存在某个子串是另一个串的前缀子串。下面对比三个方法:
阅读全文
0 0
- 字典树
- 字典树
- 字典树
- 字典树
- 字典树
- 字典树。。
- 字典树
- 字典树
- 字典树
- 字典树
- 字典树
- 字典树
- 字典树
- 字典树
- 字典树
- 字典树
- 字典树
- 字典树
- Unity_什么是AR_078
- HDU.1466.计算直线的交点数(动态规划)
- 【Hibernate】uniqueResult方法
- 打印配置文件nginx.conf内容的行号及内容和开机启动软件设置和查看配置文件总行数
- Oracle性能调优
- 字典树
- RecyclerView与NestedScrollView滑动冲突
- 【Hibernate】查询
- HTML和HTML5总结
- Bitcask存储系统架构设计思想
- PHP private public protected区别以及实例
- mybatis显示修改数据库成功, 但没有修改数据库的原因 (mybatis可以查询但无法修改数据库)
- 安卓C代码增加宏开关
- UML类图学习备忘