- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章算法效率分析基础.ppt.ppt
Fibonacci numbers The Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, … Fibonacci recurrence: F(n) = F(n-1) + F(n-2) F(0) = 0 F(1) = 1 Fibonacci numbers 上述递推式是常系数齐次二阶线性递推式 可采用P.359给出的方法求解 Fibonacci numbers Computing Fibonacci numbers Nonrecursive brute-force algorithm assert(n=0); a=F(0), b=F(1) for(i=1;in;++i) { tmp=a+b;a=b;b=tmp; } return n==0? a: b; Explicit formula algorithm Logarithmic algorithm based on formula: for n≥1, assuming an efficient way of computing matrix powers. * * * 第2章 算法效率分析基础 为什么需要对一个算法进行效率分析 作比较 对于同一问题,为什么一个解法比另一个解法好 寻找解决一个问题的算法的极限 解决一个问题的最快可以达到多快(度量) 如解决排序问题的算法最快是多少? 一个问题是否不存在更快的解法(NP问题) 如在冯诺依曼机器上,解决旅行商问题的任何算法的时间费用都将是城市数量的指数级 算法分析 需解决的问题 度量一个算法的时间效率(时间费用) 度量一个算法的空间效率(空间费用) 优化算法 最小化一个算法的时间效率或空间效率 途径 理论分析 经验分析 理论分析 时间效率 识别一个算法的“基本操作” 对该算法总运行时间贡献最大的操作被认为是基本操作 将“基本操作”的执行次数C(n)看成是“输入规模n”-的函数,并通过推导的方法找出C(n) 然后估计算法的运行时间T(n)为 cop是特定机器上一个算法的基本操作的执行时间,一般假定为常数 输入规模与基本操作的例子 问题 输入规模 基本操作 从n个元素的列表中搜索特定的元素 n 比较 两个实数矩阵的乘法 矩阵的维度 浮点乘 计算 an n 浮点乘 图问题 结点和边的数量 访问一个结点或 穿越一条边 时间效率的经验分析方法 选定特定的输入样本 使用物理时间单位(如秒)或对基本操作的执行次数进行计数 分析实验结果 最优、最差和平均效率 大多数算法的效率C(n)不仅依赖于输入的规模而且依赖于输入的其它细节:次序、各元素的差异等: 最差情况: Cworst(n) 即C(n)最大值 最好情况: Cbest(n) 即C(n)最小值 平均情况: Cavg(n) 即在一般的输入样本情况下C(n)的值 严格地讲, Cavg(n)是假定输入规模为n的输入数据在所有可能的形式下,C(n)的数学期望 例子:顺序搜索 算法见书P.36 输入: 数组A[1..n],待找元素k 基本操作:比较 其中pi为在A[1..n]的第i位置找到k的概率,Ci为相应的比较次数 Pn+1相当于没有找到的概率 基本操作次数的公式类型 精确公式 如:C(n) = n(n-1)/2 精确的常量乘数和增长次数(不精确) 如: C(n) ≈ 0.5 n2 未知的常量乘数c 如: C(n) ≈ c n2 增长次数 在忽略常数因子后的执行次数C(n)在n→∞时的度量称为增长次数 如对于C(n) ≈ c × n(n-1),一般在下述场合下只需关心增长次数,即n2项 如果算法在一台比现有机器快10倍的机器上运行,它运行有多快?10倍 如果输入规模翻倍,该算法会运行多长时间?约4倍的时间 常见增长次数(函数) 渐进增长率 作为一种比较两个函数的增长次数的方法 考虑n→∞并忽略常数因子时,函数增长率的比较 O,Θ,Ω符号的粗略含义 O(g(n)) 表示增长率不超过g(n)的函数集合 Θ(g(n)) 表示增长率与g(n)相同的函数集合 Ω(g(n)) 表示增长率大于或等于g(n)的函数集合 O符号 Ω符号 Θ符号 渐进符号的一个定理 将上述命题中的O换成 Ω或Θ同样成立 利用极限比较增长次数 t(n) g(n) 关系 10n 2n2 t(n)?O(g(n)) logb n logc n t(n)??(g(n)) n(n+1)/2 n2 t(n)??(g(n)) 基本的效率类型 1 常量 log n 对数 n 线性 n log n n log n n2 平方 n3 立方 2n 指数 n! 阶乘 2.3 非递归算法的数学分析 步骤 决定哪个(哪些)输入参数表示输入规模 找
您可能关注的文档
- 数据结构耿国华高教版 第2章.ppt
- 数据结构课件ppt第一章-2.ppt
- 数据结构课件zw2.ppt
- 数理方程于特殊函数(杨春)ppt4.ppt
- 数理方程课件1-4.ppt
- 数理方程课件2-2.ppt
- 数理方程课件2.2.ppt
- 数理方程课件6-1.ppt
- 数理统计 2_2.ppt
- 数理统计 第1章.ppt
- 2025年网络文学平台版权运营模式创新与版权保护体系构建.docx
- 数字藏品市场运营策略洞察:2025年市场风险与应对策略分析.docx
- 全球新能源汽车产业政策法规与市场前景白皮书.docx
- 工业互联网平台安全标准制定:安全防护与合规性监管策略.docx
- 剧本杀剧本创作审核标准2025年优化与行业自律.docx
- 2025年新能源电动巡逻车在城市安防中的应用对城市环境的影响分析.docx
- 全渠道零售案例精选:2025年行业创新实践报告.docx
- 2025年网约车司乘纠纷处理机制优化与行业可持续发展报告.docx
- 2025年宠物烘焙食品市场法规政策解读:合规经营与风险规避.docx
- 2025年宠物行业数据安全监管政策影响分析报告.docx
文档评论(0)