文章目录
数据结构与算法分析-第二章-算法分析
这一章的讨论内容:
- 如何估计一个程序的运行时间
- 如何将一个程序的运行时间从天或年降低到秒
- 粗心使用递归的后果
- 将一个数自乘得到其幂以及计算两个数的最大公因数的非常有效的算法c
2.1数学基础
符号 | 含义 |
---|---|
T ( n ) = Ω ( f ( n ) ) T(n)=\Omega(f(n)) T(n)=Ω(f(n)) | T ( n ) T(n) T(n)的增长率大于等于 f ( n ) f(n) f(n) |
T ( n ) = ω ( f ( n ) ) T(n)=\omega(f(n)) T(n)=ω(f(n)) | T ( n ) T(n) T(n)的增长率大于 f ( n ) f(n) f(n) |
T ( n ) = Θ ( f ( n ) ) T(n)=\Theta(f(n)) T(n)=Θ(f(n)) | T ( n ) T(n) T(n)的增长率等于 f ( n ) f(n) f(n) |
T ( n ) = o ( f ( n ) ) T(n)=o(f(n)) T(n)=o(f(n)) | T ( n ) T(n) T(n)的增长率小于 f ( n ) f(n) f(n) |
T ( n ) = O ( f ( n ) ) T(n)=O(f(n)) T(n)=O(f(n)) | T ( n ) T(n) T(n)的增长率小于等于 f ( n ) f(n) f(n) |
法则3: l o g k N = O ( N ) log^kN=O(N) logkN=O(N),这足以说明对数级别的增长是多么缓慢
由法则3可得: O ( N 2 l o g ( N ) ) 与 O ( N 2 ) O(N^2log(N))与O(N^2)