算法的时间复杂度分析分为3步:
1、找出基本语句
2、把基本语句的执行次数用多项式表示
3、把多项式记为大O形式
例如,分析以下程序段的时间复杂度:
for (i=1; i<=n; i=2*i)
++x;
分析:
1、基本语句:++x;
2、把基本语句的执行次数用多项式表示:
i |
条件 |
x++;执行总次数 |
1 |
i<=n |
1 |
2 |
i<=n |
2 |
|
i<=n |
3 |
|
i<=n |
4 |
…… |
i<=n |
…… |
|
i<=n |
T+1 |
|
i>n |
|
有: <=n且
>n 即:
<=n <
取以2为底的对数得:T < < T+1
整理得:-1< T <
3、把多项式记为大O形式:Ο()