算法导论 笔记

本文深入探讨了算法复杂度的渐进符号表示,包括O、o、Ω、ω和Θ符号的含义,并通过斐波那契数列的矩阵算法实例展示了分治法的高效性,同时揭示了比较排序算法在最坏情况下的复杂度下限为Ω(nlgn)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注:部分内容来自《算法导论》中文版

第二节:渐近符号、递归及解法

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为叶子节点数)

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值