NFAs are cheaper to construct, but have a O(n*m) matching time, where n is the size of the input and m is the size of the state graph. NFAs are often seen as the reasonable middle ground, but i disagree and will argue that NFAs are worse than the other two. they are theoretically “linear”, but in practice they do not perform as well as DFAs (in the average case they are also much slower than backtracking). they spend the complexity in the wrong place - why would i want matching to be slow?! that’s where most of the time is spent. the problem is that m can be arbitrarily large, and putting a large constant of let’s say 1000 on top of n will make matching 1000x slower. just not acceptable for real workloads, the benchmarks speak for themselves here.
Фото: Jeff Haynes / Reuters
,推荐阅读同城约会获取更多信息
"Jack, you grass!" announced an indignant Ryder, before making an exceptionally off-colour joke about Paddington Bear.,更多细节参见夫子
2026-03-04 00:00:00:0本报记者 彭 波 ——写在十四届全国人大四次会议即将召开之际。旺商聊官方下载对此有专业解读