【发布时间】:2014-03-18 05:23:05
【问题描述】:
我想知道龙书中直接使用algo 3.36从正则表达式构造DFA的时间复杂度。
我对外部 while 循环会执行多少次感到困惑?就像在算法中提到的 Dstates 一样,它们是否等于正则表达式中的操作数数量?
还有多少工作将在执行等于 |Σ| 的 for 循环中完成次?
谢谢。
【问题讨论】:
-
这对 SO 来说是一个非常糟糕的问题,再见
-
@nhahtdh 给定的复杂性是通过使用 NFA 进行构造,这将在最坏的情况下导致 2^n 状态,因此 O(2^n) 。我已经要求直接从正则表达式构造
-
@gwillie 简单地说我想知道在 Dragon book 中使用 algo 3.36 直接从正则表达式构造 dfa 的时间复杂度:|
-
@nhahtdh 没有必要通过 NFA,因为我们可以从正则表达式构建语法树并因此使用它.....更多信息我建议您通过龙书中的算法 3.36 ....我知道它的最坏情况复杂度是 2^n 但想知道确切的表达式..
标签: regex compiler-construction runtime time-complexity dfa