- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[电脑基础知识]算法设计与分析第1章 算法概述
* 算法设计与分析 * 课后练习 1-4 ①假设某算法在输入规模为n时的计算时间为T(n)=3×2n。在某台计算机上实现并完成该算法的时间为t秒。现有另一台计算机,其运行速度为第一台的64倍,那么在这台新机器上用同一算法在t秒内能解输入规模多大的问题? ②若上述算法的计算时间改进为T(n)=n2,其余条件不变,则在新机器上用t秒时间能解输入规模为多大的问题? ③若上述算法的计算时间进一步改为T(n)=8,其余条件不变,那么在新机器上用t秒时间能解输入规模多大的问题? * 算法设计与分析 * 课后练习 1-6 对于下列各组函数f(n)和g(n),确定f(n)=O(g(n))或f(n)=Ω(g(n))或f(n)=θ(g(n)) ,并简述理由。 * 算法设计与分析 * End 1.性能的好坏直接决定了可行或者不可行,例如一些实时需求 算法总是位于解决问题的最前线 2.性能位于最底层,扮演的角色好比经济中的钞票,有了这些,才能有水、食物等等商品,需要将性能作为支付其他东西的“货币”。作为衡量的一般性标准 * 古老的经典问题 * 当输入序列已排好序时出现最佳(好)情况。 如果输入数组正好呈完全反序(数值从大到小排列),则出现最坏情况 * * 算法是描述程序行为的语言 * 平均情况:期望概率分布下时间消耗 最好情况:一般不予考虑,假象 * 以下部分主要是数学讨论,与算法无关 * 忽略常量,关注运行时间的增长,而不是实际的运行时间 * 来自于单词“order”,一般译为“阶”,也可以译为“数量级” * 1 常数 ;logN 对数(一种增长很慢的函数) ; N 线性 ; N2 平方 ; 2N 指数 * 算法设计与分析 算法设计与分析 * 算法设计与分析 * 第1章 算法概述 理解研究算法的目的 理解算法的概念和算法的基本要素 掌握算法在最坏情况、最好情况和平均情况下的计算复杂性概念 掌握算法复杂性的渐近性态的数学表述 算法分析的研究内容 研究计算机程序性能和资源利用 在程序设计方面,什么比性能更重要? 正确性 功能性 可维护性 稳定性,健壮性 可重用性,模块化 安全性 用户友好 * 算法设计与分析 * * 算法设计与分析 * 为什么要研究算法? 通过算法程序员可以定量的分析程序的执行效率。Scalability 算法可以帮助我们区分什么是“可行的”feasible,什么是“不可能的”impossible。 描述程序行为的语言 程序的执行速度是追求的目标! * 算法设计与分析 * 1.1 算法与程序 算法的定义:解决问题的一种方法或一个过程。 算法的基本要素: 输入:有零个或多个外部量作为算法的输入。 输出:算法产生至少一个量作为输出。 确定性:组成算法的每条指令清晰、无歧义。 有限性:算法中每条指令的执行次数有限,执行每条指令的时间也有限。 * 算法设计与分析 * 举例:排序问题 排序:将无序数值序列排列成按值非递减序列。 问题定义: 输入:数值序列a1,a2,……,an 输出:数值序列a’1,a’2,……,a’n且a’1≤a’2 ≤ …… ≤ a’n。 { 31, 41, 59, 26, 41, 58 } { 26, 31, 41, 41, 58, 59 } * 算法设计与分析 * 插入排序 templateclass Type void INSERTION-SORT(Type A[ ], int n) 1 { int i, j; Type key; 2 for(j=1; jn; j++) 3 { key=A[j]; 4 //将元素A[j]插入已排序列A[0 ~ j - 1]。 5 i=j-1; 6 while(i=0A[i]key) 7 { A[i+1]=A[i]; 8 i=i-1; } 9 A[i+1]=key; } 10 } 0 j n-1 A Key 已排好序的 5 2 4 6 1 3 0 1 2 3 4 5 * 算法设计与分析 * 插入排序 2 5 2 4 6 1 3 0 1 2 3 4 5 key (a) 4 2 5 4 6 1 3 0 1 2 3 4 5 key (b) 6 2 4 5 6 1 3 0 1 2 3 4 5 key (c) 1 2 4 5 6 1 3 0 1 2 3 4 5 key (d) 3 1 2 4 5 6 3 0 1 2 3 4 5 key (e) 1 2 3 4 5 6 0 1 2 3 4 5 (f) * 算法设计与分析 * 算法的时间效率 templateclass Type voi
您可能关注的文档
最近下载
- 2025年国家级检验检测机构资质认定评审员考试测试题及答案.docx
- 【国家标准】GB 50617-2010 建筑电气照明装置施工与验收规范.pdf
- 冠心病护理查房.pptx VIP
- BOSS立体声音箱CUBE-ST2使用说明书.pdf VIP
- Y·YKK·YKS和Y2系列高压三相异步电动机.pdf VIP
- 教师职业道德与专业发展(山东师范大学)知到智慧树章节答案.docx VIP
- 2.4 传感与控制 ---温度报警器 教学设计-浙教版(2019)高中信息技术必修 2.docx VIP
- 全国建材行业职工助推高质量发展主题竞赛考试题及答案.doc VIP
- 《给水排水管道工程施工及验收规范》GB50268.pdf VIP
- 小学生卫生与健康课件.ppt VIP
文档评论(0)