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