关于 AC 自动机的复杂度
  • 板块学术版
  • 楼主Cutest_Junior
  • 当前回复6
  • 已保存回复6
  • 发布时间2021/7/14 07:26
  • 上次更新2023/11/4 14:52:14
查看原帖
关于 AC 自动机的复杂度
246014
Cutest_Junior楼主2021/7/14 07:26

我们回忆一下 KMP 算法的复杂度分析:

表示匹配到模式串哪一位的指针 now 在匹配文本串的每一位的时候至多只会增加 11,不管怎么跳 next 数组,都不会超过增加的次数。所以 KMP 算法在匹配的时候的复杂度为 O(n)O(n) 的。

现在考虑 AC 自动机没有修改字典树的结构的做法的复杂度:每次跳 fail 数组都会使当前节点在字典树上的深度变低,而匹配文本串的每一位时,和 KMP 算法一样,都至多只会深度增加 11,不管怎么跳 fail 数组,都不会超过增加的次数。所以 AC 自动机哪怕不修改字典树的结构复杂度仍然为 O(n)O(n)?修改字典树的结构仅仅是为了常数?

初学 AC 自动机,求解答。

2021/7/14 07:26
加载中...