注:部分内容来自《算法导论》中文版
第二节:渐近符号、递归及解法
1、渐进符号:
1)O :f(n) = O(g(n)),指f(n)的复杂度最多与g(n)一个数量级,即小于等于(<=);
2)o :f(n) = o(g(n)),指f(n)的复杂度要比g(n)的数量级小,即小于(<);
3)Ω:f(n) = Ω(g(n)),指f(n)的复杂度最少与g(n)一个数量级,即大于等于(>=);
4)ω:f(n) = ω(g(n)),指f(n)的复杂度要比g(n)的数量级大,即大于(>);5)Θ:f(n) = Θ(g(n)),指f(n)的复杂度既大于等于g(n)的复杂度,又小于等于g(n)的复杂度(O与Ω的交集),即于g(n)的复杂度相当。
2、递归式(分析算法复杂度):
1)代换法:先猜想某个界存在,然后再用数学归纳法证明该猜想的正确性
2)递归树方法:将递归式转换成树形结构,树中的结点代表在不同递归层次付出的代价
3)主方法:
第三节:分治法(1)
各种分治举例,印象比较深的就是斐波那契数列的矩阵算法:即建立2X2的矩阵,计算矩阵的乘方
(归纳法证明)
算法复杂度:Θ(lgn)
第5节: 线性时间排序
定理 8.1 任意一个比较排序算法在最坏的情况下,都需要做Ω(nlgn)次的比较
n!<=L<=2^h(L为叶子节点数)
本文深入探讨了算法复杂度的渐进符号表示,包括O、o、Ω、ω和Θ符号的含义,并通过斐波那契数列的矩阵算法实例展示了分治法的高效性,同时揭示了比较排序算法在最坏情况下的复杂度下限为Ω(nlgn)。
569

被折叠的 条评论
为什么被折叠?



