计算模型
- 图灵机模型
- RAM模型
同一个算法,当实现语言,运行的操作系统,机器的CPU不同时,耗时是不同的,为了对算法运行事件进行一个准确的判断,人们提出了标准计算模型,将算法的耗时转化为标准模型运行算法时所需的基本操作次数
记号
定义 T(n) 为某个算法的时间复杂度
1. 大O记号
定义 O(f(n))是T(n)的上界,即大O记号代表该算法的最坏情况
2. 大Ω记号
定义 Ω(f(n))是T(n)的下界,即大Ω记号代表该算法的最好情况
3. 大Θ记号
定义 Θ(f(n))在O(f(n))和Ω(f(n))之间,即大Θ记号代表该算法的平均情况
大O记号的复杂度级别
O(1) | O(log n) | O(n) | O(polynomial(n)) | O(2^n) |
---|---|---|---|---|
常数级 | 对数级 | 线性 | 多项式 | 指数 |
高效解 | 高效解 | 有效解 | 有效解 | 难解 |
算法分析
级数的复杂度
算术级数:比幂次高一级
循环的复杂度
一般来说,m重循环时间复杂度O(n^m)
n重循环相当于n个级数