找到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;
}
答案 0 :(得分:1)
试试google。您正在使用欧几里德算法进行GCD。 Here是维基百科关于算法效率的文章。
答案 1 :(得分:1)
假设a = 100且b为小于100的任何值。 在最坏的情况下,%b的最大值是多少?它的49,只有当b = 51时。 这意味着即使在最坏的情况下,在每次迭代时,a的值减半!
所以这是O(LOGN)算法。