算法分析基础
来源:互联网 发布:mac guid分区方案 编辑:程序博客网 时间:2024/06/14 00:15
1.级数
a. 算数级数(等差)
1+2+3+4+...+n = O(n^2) //末项的平方
b. 幂数级数
1^a + 2^a + ... + n^a = O(n^(a+1)) //末项的幂数加一次方
c. 几何级数
a^0 + a^1 + a^2 + ... + a^n=O(a^n)//末项
d. 调和级数
1/1 + 1/2 + 1/3 + ... + 1/n = O(logn)
log1 + log2 + log3 + ... + logn = O(nlogn)
2.正确性证明
a. 不变性证明:第k轮后,一定会...;此时考虑第k+1轮...(数学归纳法)
b. 单调性证明:第k轮后,问题规模会变成n-k,算法必然会终止
因此,一定会有边界。
3. 递归
减而治之
分而治之
以上两种可同时用,例如lcs中末尾字符相同,则减而治之;不相同,则分成两种情况(分而治之)。
4. 封底估算
主流计算机频率: 10^9/s
fie = 1.618
fie^36 = 2^25
2^10 = 10^3
10^5 s = 1 day
10^10 = 3 centuries
5.关于递归的复杂度
无论是减而治之还是分而治之,复杂度取决于分成的递归进程个数。
一般来说,减而治之,复杂度不变;分而治之,复杂度指数级。
阅读全文
0 0
- 算法分析基础
- 算法分析基础
- 算法设计分析基础
- 算法分析基础
- 算法和算法分析基础
- 算法时间复杂度分析基础
- 算法时间复杂度分析基础
- 算法分析与设计基础
- 算法时间复杂度分析基础
- 算法时间复杂度分析基础
- 算法时间复杂度分析基础
- 算法时间复杂度分析基础
- 算法时间复杂度分析基础
- 算法时间复杂度分析基础
- (二) 算法分析基础
- 算法分析的数学基础
- 算法时间复杂度分析基础
- 算法时间复杂度分析基础
- poj2773(互质)
- spring事务管理
- 统计专业人数
- java.util.Stack类中 empty() 和 isEmpty() 方法的作用
- js排序算法详解-希尔排序
- 算法分析基础
- Caused by: org.springframework.beans.factory.BeanExpressionException: Expression parsing failed;
- Java构造方法
- PX4 飞控中常用高度区分
- 模糊查询多选删除
- bootstrap-js组件
- JavaScript入门篇--请做好准备
- 表达式求值(多函数问题)
- 成千上万各行各业资料