【发布时间】:2014-09-01 20:39:43
【问题描述】:
为什么这个算法的时间复杂度是指数级的?
我了解“模数”是按位运算符,对单个位进行运算。因此,在最坏的情况下,我们需要执行 sqrt(2^n) 除法。所以这是一个exp时间算法。
如果这是真的,不是所有的算法都会变成指数时间吗?请解释。
Find-Factor(X)
1: if X is even then
2: return ”2 is a factor”
3: end if
4: for i = 3 to Sqrt(X) by +2 do
5: test if X%i = 0, if yes, output ”i is a factor”
6: end for
7: return ”X is a prime.”
【问题讨论】:
-
我不太明白第 4 行...
-
模数是除法,而不是按位。只有当除数是 2 的精确幂和字面量时,它才能变为按位。
-
@HuStmpHrrr 请检查。我换行了