蛮力GCD算法的复杂性

时间:2018-10-04 00:42:48

标签: time-complexity greatest-common-divisor

要完成任务:找到gcd(a,b)中的整数a> b> 0

考虑一种算法,该算法检查直到b的所有数字,并跟踪除以a和b的最大数。每次检查将使用%运算符两次(对于a和b)。这种算法的复杂性是什么?

我还没有参加过复杂性理论的任何正式CS课程(我将很快),所以我只是在寻找一个快速答案。

1 个答案:

答案 0 :(得分:1)

模运算是在硬件中实现的,它是伪O(1)。严格来说,它不是恒定的,但取决于ab的位数。但是,即使这样,所有输入大小的位数都是相同的,因此我们通常会忽略此因素。

蛮力GCD的最坏情况下的复杂度仅为O(n)(还有O(a)O(b)O(min(a,b));它们都是一样的),并且当GCD为1ab时发生。