当前位置:首页 → 计算机类 → 软件水平考试 → 中级嵌入式系统设计师->求解两个长度为n序列X和Y一个最长公共子序列(如序列ABCB
求解两个长度为n序列X和Y一个最长公共子序列(如序列ABCBDAB和BDCABA一个最长公共子序列为BCBA)可以采用多种计算方法。如可以采用蛮力法,对X每一个子序列,判断其是否也是Y子序列,最后求出最长即可,该方法时间复杂度为( )。经分析发现该问题具有最优子结构,可以定义序列长度分别为i和j两个序列X和Y最长公共子序列长度为c[i,j],如下式所示。

采用自底向上方法实现该算法,则时间复杂度为(请作答此空)
蛮力法,对X每一个子序列,判断是否也是Y子序列,其中,长度为n序列X共有2^n个子序列,判断其是否是Y子序列时间是n,因此是n*2^n;采用动态规划法自底向上实现时,根据递归公式,实际是关于i和j两重循环,因此时间复杂度是n^2.









