我不理解的算法是:
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)
。
如果我错了,请告诉我。谢谢!
答案 0 :(得分:0)
我在互联网上搜索,这个算法的复杂性是O(n + m)。我发布这个来帮助其他人。链接是:https://codility.com/media/train/10-Gcd.pdf