在只有根节点完美散列的前缀树中,其余节点都在用二分查找。当存在c个子节点时,每次状态转移的复杂度为 O(log c )。当c 很大时,依然很慢。
双数组字典树(Double Array Trie,DAT)就是一种状态转移复杂度为常熟的数据结构,双数组字典树由日本人Jun-Ichi Aoe于1989年提出
DAT 如其名,维护着两个数组——base 和 check。
DAT中,每个节点都表示一种状态,这个状态是词的生成流程
如 “自然人” 这个词的状态生成过程可以表示为:
双数组字典树(Double Array Trie, DAT)是一种状态转移复杂度为常数的数据结构,用于高效处理字符串搜索。由base和check两个数组维护,每个节点代表词的生成状态。DAT通过选取合适的下标,将节点状态保存并关联其子节点,形成词的拓展路径。当找不到子节点时,表示可以生成词,填充完父节点的base和子节点的check。此概念来源于《自然语言处理入门》。"
133237733,19974055,Windows环境下MySQL绿色版的启动与数据库操作指南,"['数据库', 'MySQL', 'Windows']
在只有根节点完美散列的前缀树中,其余节点都在用二分查找。当存在c个子节点时,每次状态转移的复杂度为 O(log c )。当c 很大时,依然很慢。
双数组字典树(Double Array Trie,DAT)就是一种状态转移复杂度为常熟的数据结构,双数组字典树由日本人Jun-Ichi Aoe于1989年提出
DAT 如其名,维护着两个数组——base 和 check。
DAT中,每个节点都表示一种状态,这个状态是词的生成流程
如 “自然人” 这个词的状态生成过程可以表示为:
1803

被折叠的 条评论
为什么被折叠?