【发布时间】:2021-02-18 07:24:42
【问题描述】:
我正在学习计算算法的时间复杂度。 可以计算简单循环和嵌套循环,但如果循环内有分配,我该如何计算。 例如:
void f(int n){
int count=0;
for(int i=2;i<=n;i++){
if(i%2==0){
count++;
}
else{
i=(i-1)*i;
}
}
}
i = (i-1)*i 影响循环运行的次数。如何计算此函数的时间复杂度?
【问题讨论】:
-
我认为这没有一般规则。在这种情况下,
i似乎每隔一次迭代就会翻倍,所以这应该大约是 O(logn)。 -
指数增长是否表示对数增长?抱歉,我对这个主题有点陌生。你能更详细地解释一下吗? @tobias_k
标签: c algorithm time-complexity