【发布时间】:2012-01-06 11:55:03
【问题描述】:
我正在阅读 Cormen 的“算法简介”一书中的字符串算法。对于如下所示的过渡。
我的问题:我们为什么要做min(m+1, q+2) 以及为什么我们要将 m 增加 1 和 q 增加 2。
以下链接具有上述问题的背景。
http://people.scs.carleton.ca/~maheshwa/courses/5703COMP/Fall2009/StringMatching.pdf
请在这里举一个简单的例子。
Algorithm Compute-Transition-Function(P, Sigma)
m = length(P);
for q = 0 through m do
for each character x in Sigma
k = min(m+1, q+2);
repeat k = k-1 // work backwards from q+1
until Pk 'is-suffix-of' Pqx;
d(q, x) = k; // assign transition table
end for;
end for;
return d;
End algorithm.
【问题讨论】:
-
您需要添加更多上下文才能使这个问题对任何人有用。
-
你的意思是这本书吗:Introduction to algorithms?
-
是的,这本书是 Cormen 等人的算法导论
-
请在问题中加入上下文,而不是作为另一个页面的链接。