Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 计算最长公共子序列复杂度的数学递推关系_Algorithm_Recurrence - Fatal编程技术网

Algorithm 计算最长公共子序列复杂度的数学递推关系

Algorithm 计算最长公共子序列复杂度的数学递推关系,algorithm,recurrence,Algorithm,Recurrence,我想用数学方法计算LCS算法问题的递推关系。我的目的是应用master定理来计算复杂性O(2^n) 任何人都可以解释如何驱动该循环关系?循环关系将是: T(n,m) = T(n-1,m-1)+O(1), if (X[m-1] = Y[n-1]) or T(n-1,m)+T(n,m-1)+O(1), otherwise T(n,m) = T(n-1,m)+T(n,m-1)+O(1) 我们必须考虑最坏的情况,即: T(n,m) = T(n-1,m-1)+O(

我想用数学方法计算LCS算法问题的递推关系。我的目的是应用master定理来计算复杂性O(2^n)


任何人都可以解释如何驱动该循环关系?

循环关系将是:

T(n,m) = T(n-1,m-1)+O(1), if (X[m-1] = Y[n-1])
         or
         T(n-1,m)+T(n,m-1)+O(1), otherwise
 T(n,m) = T(n-1,m)+T(n,m-1)+O(1)
我们必须考虑最坏的情况,即:

T(n,m) = T(n-1,m-1)+O(1), if (X[m-1] = Y[n-1])
         or
         T(n-1,m)+T(n,m-1)+O(1), otherwise
 T(n,m) = T(n-1,m)+T(n,m-1)+O(1)
自始至终。这可以归结为:

T(n,m) <= 2^(n-1) T(0,m) + ... , if m<n (longest branch of height n)
         or
         2^(m-1) T(n,0) + ... , if n<m (longest branch of height m)


如果n和m相等。

在最坏的情况下,当字符串不同时,每次调用
lcs()
时,工作量几乎增加一倍(调用
lcs()
2次)。这给了你指数级的复杂性。@AlexeyFrunze你能给出这个的递归关系吗。你能告诉我n&m是什么吗?它们是树的左/右分支吗?另外,X和Y来自哪里?@Auston请检查问题中提供的“int lcs(…)”函数以获得答案。
T(n,m) = O(2^n)