目录
时间复杂度的计算本质就是求出其总执行次数,以下是一些例题:
一.单循环
关于单循环的题目就是列表求出其次数,最后根据运算规则来写出其执行次数。
例如:
for (i=0;i<=n;i++){
count++;
}
求解:
二.双循环
1.外层循环不影响内层循环:分别求解在相乘
for (i=0;i<=n;i*=2){
for(j=0;j<=n;j++)
count++;
}
求解:
2.外层影响内层
法一:累加
公式:
例:
for(i=1;i<=n;i++){
for(j=1;j<=2*i;j++)
m++;
}
求解:
法二:列出对应次数
例子:
for(i=1;i<=n;i*2)
for(j=0;j<i;j++)
count++
例:
for(i=1;i<=n;i++)
for(j=2*i;j<i;j++)
count++
三.关于递推函数:写递推树
例:
Fibonacci(size_t N) {
return N < 2 ? N : Fibonacci(N-1)+Fibonacci(N-2);斐波那契数列
}