- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构与算法分析A Practical Introduction toData Structures and Algorithm Analysis陈 星 第3章 算法分析 疑问? 通常对一个问题有多种解决方法 算法 ,如何挑选一种较好的方法? → 了解方法(算法)的相对效率。 计算机编程的两大目标: 设计理解容易、编码简单和调试方便的算法。 → 软件工程 设计能够高效率地利用计算机资源的算法。 →数据结构和算法分析 如何检测算法的效率? 实际测量算法的计算机运算时间。 问题:1. 需为每种算法都编写程序。 2. 代码质量对计算机耗时有影响。 3. 测试数据的选择对计算机耗时有影响。 4. 需要所有算法都运行一遍。 渐近算法分析(简称算法分析) 估算算法及实现它的程序的效率和开销。 计算机的关键资源 时间代价 空间代价(内存和磁盘空间) 分析算法效率的可行方法 可行的方法: 一定规模下,算法所需基本运算的执行次数。 基本运算的选择原则: 1、算法执行的运算总次数与基本运算的次数大体上成比例。 2、基本运算以外的其它运算的运算量可以忽略。 影响运行时间的因素 假设在代码质量、编译系统等与算法无关的因素 相同的条件下,影响某算法程序执行时间的因素: 1. 问题的规模。 运行时间T可以表示为规模n的函数T n 。 2. 特定的输入。 问题规模对运行时间的影响 例1 : 查找数组元素中的最大值 int largest int array[ ], int n int currlarge 0; // Largest value seen for int i 1; i n; i++ // For each val if array[currlarge] array[i] currlarge i; // Remember pos return currlarge; // Return largest 问题的规模:数组的大小n 基本操作:整数的比较 设每次整数比较的时间为c,则运行时间 T n cn 例2 : 将数组中第k元素赋给某变量 T n c 常数运行时间:输入规模n对运行时间不产生影响。 例3 : sum 0; for i 1; i n; i++ for j 1; j n; j++ sum++; T n cn2 算法的增长率是指当输入的值增长时,算法代价的增长速率。 线性增长率: T n cn 二次增长率: T n cn2 指数增长率: T n c1c2C3n …… 特定输入对运行时间的影响 例1 : 查找数组元素中的值为x的元素 int SearchX int array[ ], int n for int i 1; i n; i++ // For each val if array[ i ] x return i; return 0; 算法的最佳情况、最差情况、平均情况。 更快的计算机还是更快的算法? 如果计算机的速度增快10倍? T n n n’ Change n’/n 10n 1,000 10,000 n’ 10n 10 20n 500 5,000 n’ 10n 10 5n log n 250 1,842 n n’ 10n 7.37 2n2 70 223 n’ n 3.16 2n 13 16 n’ n + 3 ----- 渐近分析 当输入规模很大后,我们分析一种算法运行时间增长率时,可以忽略算法运行时间函数的系数。 上限 大O表示法 描述一种算法消耗某种资源(通常是时间)的最大值。 对非负函数T n ,若存在两个正常数c和n0,对任意n n0,有T n ≤cf n ,则称T n 在集合O f n 中。 例:某一算法平均情况下T n c1n2+c2n, c1,c2为正整数。若n 1,c1n2+c2n≤c1n2+c2n2。因此取c c1+c2,n0 1,有T n ≤cn2。故T n 在O n2 中。 下限 (大Ω 表示法) 描述算法消耗某种资源(通常是时间)的最小值。 对非负函数T n ,若存在两个正常数c和n0,对任意n n0,有T n ≥cg n ,则称T n 在集合Ω g n 中。 例:某一算法平均情况下T n c1n2+c2n, c1,c2为正整数。若n 1,c1n2+c2n≥c1n2。因此取c c1,n0 1,有T n ≥cn2。故T n 在Ω n2 中。 Θ表示法:如果一种算法既在O h n 中,又在Ω h n 中,则称其为Θ h n 。 化简原则:计算某算法代价的渐近增长率时,忽略所有的常数和低次项。 程序运行时间的计算 例3.8
您可能关注的文档
最近下载
- 高一化学离子反应练习题.doc VIP
- 围手术期疼痛管理新进展.pptx
- 2025“才聚齐鲁成就未来”山东黄金集团井下技能工人招聘2000人笔试模拟试题及答案解析.docx VIP
- 2025“才聚齐鲁成就未来”山东黄金集团井下技能工人招聘2000人考试备考试题及答案解析.docx VIP
- 培训课件-冠心病的诊疗.ppt VIP
- 统编版道德与法治小学二年级上册《1 假期有收获》课堂教学课件PPT公开课.pptx VIP
- 2025“才聚齐鲁成就未来”山东黄金集团井下技能工人招聘2000人笔试备考试题及答案解析.docx VIP
- 2025“才聚齐鲁成就未来”山东黄金集团井下技能工人招聘2000人备考题库及答案解析.docx VIP
- 2025年山东黄金集团井下技能工人招聘(2000人)考试备考题库及答案解析.docx VIP
- 康明斯KTA19-G2型柴油机.pdf VIP
文档评论(0)