算法的时间复杂度分析分为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形式:Ο()