蛮力GCD算法的复杂度
Complexity of brute force GCD algorithm
完成任务:找到整数 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
.
时,就会发生这种情况
完成任务:找到整数 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
.