为什么回溯线性在运行时间?

时间:2017-03-28 08:23:31

标签: algorithm bioinformatics

我使用线性间隙成本实现了全局对齐。我知道填充矩阵的运行时间是O(mn),但我没有得到的是回溯的运行时间。 这是伪代码: enter image description here

我可以看到回溯的运行时间是O(n),因为我们只迭代一个循环。但有人可以给我一个很好的解释吗?

1 个答案:

答案 0 :(得分:3)

假设i已初始化为mj已初始化为n,则终止条件为ij达到零。在循环的任一次迭代中,我们减少ij或两者;在计算上,每种情况都会产生不变的成本。在至少max{m,n}步之后,循环终止。由于输入大小可能是m*n,即矩阵的维度,

max{m,n} <= m*n

成立,导致线性运行时间。