算法分析中的近似函数
描述 | 近似函数 |
---|---|
调和级数求和 | Hn=1+1/2+1/3+1/4+······+1/N~lnN |
等差数列求和 | 1+2+3+4+······+N~N²/2 |
等比数列求和 | 1+2+4+8+······+2ⁿ~2ⁿ |
斯特灵公式 | lgN!=lg1+lg2+lg3+lg4+······+lgN~NlgN |
增长数量级的分析
描述 | 增长的数量级 | 典型代码 | 说明 | 举例 |
---|---|---|---|---|
常数级别 | 1 | a=b+c | 完成任务所需的操作数一定 | 将两个数相加 |
对数级别 | logN | 二分查找 | 底数和增长的数量级无关,仅比常数级别慢 | 二分查找 |
线性级别 | N | 循环 | 一般基于单个for循环 | 循环 |
线性对数级别 | NlogN | 分治、快排 | 分治和快排 | 归并排序 |
平方级别 | N² | 双层循环 | 一般含有双层循环 | 双层循环 |
立方级别 | N³ | 三层循环 | 一般含有三层循环 | 三层循环 |
指数级别 | 2ⁿ | 穷举查找 | 不适合解决大规模问题 | 检查所有子集 |