【发布时间】:2013-04-04 18:58:56
【问题描述】:
使用三叉树的 FSA 与将转换表实现为搜索树(例如 std::map)的 trie 有什么区别?似乎两者都具有读取一个符号的 O(log k) 复杂度和 O(S) 内存复杂度,其中 k 是字母大小,S 是所有接受的输入字符串的长度之和。
如果我们不需要自动机在运行时更改,那么最好的选择不是使用(符号,状态)转换对的排序向量和二分搜索吗?
【问题讨论】:
标签: algorithm trie finite-automata ternary-search-tree aho-corasick