Time complexity 蛮力GCD算法的复杂性

Time complexity 蛮力GCD算法的复杂性,time-complexity,greatest-common-divisor,Time Complexity,Greatest Common Divisor,要完成任务:查找整数a>b>0的gcd(a,b) 考虑一个算法,它检查所有到b的数字,并跟踪将a和b分开的最大数字。每次检查将使用%运算符两次(对于a和b)。这个算法的复杂度是多少 我还没有参加过任何关于复杂性理论的正式CS课程(我很快就会参加),所以我只是在寻找一个快速的答案。模运算是在硬件中实现的,它是伪O(1)。严格地说,它不是常数,但它取决于a和b的位数。然而,即使这样,所有输入大小的位数也是相同的,所以我们通常忽略这个因素 蛮力GCD的最坏情况复杂性是O(n)(也就是O(a),O(b)

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

考虑一个算法,它检查所有到b的数字,并跟踪将a和b分开的最大数字。每次检查将使用%运算符两次(对于a和b)。这个算法的复杂度是多少


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

模运算是在硬件中实现的,它是伪
O(1)
。严格地说,它不是常数,但它取决于
a
b
的位数。然而,即使这样,所有输入大小的位数也是相同的,所以我们通常忽略这个因素

蛮力GCD的最坏情况复杂性是
O(n)
(也就是
O(a)
O(b)
,或者
O(min(a,b))
;它们都是一样的),当GCD是
1
a
,或者
b
时就会发生这种情况