时间复杂度的计算和表示:
一个算法是由控制结构(顺序、分支和循环等)和基本操作(赋值、比较等)构成的,算法的时间复杂度是基本操作的执行频度的总和。控制结构则决定了一个基本操作的执行次数,循环结构往往会得到与数据规模相关的基本操作的执行次数。
因此,为了便于得到算法时间复杂度,通常的做法是,考虑算法中循环结构中的相关操作,以这些基本操作重复执行的次数作为算法的时间量度。
如何计算时间复杂度:
找循环体中的变量和固定语句,皆计算时间复杂度
//例题一
void fun(int n){
int i=1;
while(i<=n)
i=i*2;
}
//例题2
x=2;
while(x<n/2)
x=2*x;
//例题3
int fact(int n){
if(n<=1) return 1;
return n*fact(n-1);
}
//例题4
count=0;
for(k=1;k<=n;k*=2)
for(j=1;j<=n;j++)
count++;
//例题5
int func(int n){
int i=0, sum=0;
while(sum<n) sum += ++1;
return i;
}
//例题6
for(int i=n-1;i>1;i++)
for(j=1;j<1;j++)
if(a[j]>a[j+1])
a[j]与a[j+1]对换
//例题7
int m=0,i,j;
for(int u=1;i<n;i++)
for(int j=1;j<=2*i;j++)
m++;
所以
参考:
【学习笔记】特征方程 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/463176845