数据结构
文章平均质量分 95
muyuu
这个作者很懒,什么都没留下…
展开
-
基于双数组trie树的AC自动机(含JAVA代码讲解)
目录基于双数组trie树的AC自动机构建双数组trie树AC自动机构建trie树构建双数组构建fail和output双数组trie树AC自动机的查询基于双数组trie树的AC自动机前面我们已经介绍过 AC自动机 ,但在实际使用当中如果需要构建的词典树特别大,原始版本的AC自动机在做查询时耗时会比较多,而基于双数组trie树的AC自动机恰好能够弥补这一缺陷。下面我们将基于hankcs实现的 AhoCorasickDoubleArrayTrie 代码来讲解双数组trie树的AC自动机的构建以及查询过程。原创 2021-12-06 23:53:07 · 1241 阅读 · 0 评论 -
双数组trie树详解
目录双数组trie树的构建构建base array构建check array双数组trie树的查询双数组trie树的构建NLP中trie树常用于做快速查询,但普通的trie树由于要保存大量的节点信息,当储存的词量非常大时,不仅所占空间巨大,而且查询的速度也不够快。而双数组trie树就可以比较好的解决这两个问题。之所以叫双数组trie树,是因为它只用base[]和check[]两个数组就将整个trie的信息储存了起来,这两个数组的构建规则是:base[i]+code(x)=jcheck[j]=i\be原创 2021-12-05 22:47:47 · 3380 阅读 · 7 评论 -
多模式匹配--AC自动机及JAVA实现
目录AC自动机介绍trie树三级目录AC自动机介绍AC自动机是一种基于trie树的多模式匹配算法,下面我们首先介绍trie树trie树三级目录原创 2021-11-01 18:08:57 · 1297 阅读 · 0 评论 -
KMP算法
kmp算法kmp算法简介kmp算法实现getNext()函数实现KMP实现kmp算法简介kmp算法是模式匹配的一种算法,假设我们有两个字符串,主串T和模式串P,我们需要设计一个方法,使得如果P在T中出现,就返回P出现的位置,否则返回-1。一般的想法是:// i是在主串T移动的index,j是在模式串P移动的indexwhile (i < T.length && j < P.length){ if (T[i] == P[j]){// 当两个字符相同,就比较下一个 i原创 2021-10-25 12:07:37 · 120 阅读 · 0 评论