LCM的复杂性

时间:2013-06-09 07:31:11

标签: time-complexity

找到LCM的代码的复杂性是什么。这种复杂性永远不会是O(n)。步骤也会根据输入而变化。谢谢。

public static int findGCD (int a, int b) {
    int c;
    do {
        c = a % b;
        if (c > 0) {
            a = b;
            b = c;
        }
    } while (c != 0);
    return b;
}

2 个答案:

答案 0 :(得分:1)

试试google。您正在使用欧几里德算法进行GCD。 Here是维基百科关于算法效率的文章。

答案 1 :(得分:1)

假设a = 100且b为小于100的任何值。 在最坏的情况下,%b的最大值是多少?它的49,只有当b = 51时。 这意味着即使在最坏的情况下,在每次迭代时,a的值减半!

  

所以这是O(LOGN)算法。