这个算法的复杂性是否正确?

时间:2018-06-14 09:29:20

标签: big-o asymptotic-complexity

我不理解的算法是:

alg(m, n)
1. if m>n then
2.     return alg(m-n, n)
3. else
4.     if n>m then
5.          return alg(n, m)
6.     else
7.          return n

我认为递推公式为T(m) = T(m-n) + a,其中a是常数。我试图做替换:

T(m) = T(m-k) + a*n

假设

k=m => T(m) = T(0) + a*n => T(m) = n*a + 1 => The complexity is O(n)

如果我错了,请告诉我。谢谢!

1 个答案:

答案 0 :(得分:0)

我在互联网上搜索,这个算法的复杂性是O(n + m)。我发布这个来帮助其他人。链接是:https://codility.com/media/train/10-Gcd.pdf