- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
教材与参考书 教材: 《算法设计与分析》王红梅 编 清华大学出版社 参考书: 《算法设计与分析》王晓东编 清华大学出版社 《算法设计与分析习题解答》王晓东编 清华大学出版社 Algorithm Design Techniques and Analysis M.H. Alsuwaiyel(Saudi Arabia) 电子工业出版社 学时 总学时32=理论学时26+实验学时6 在这一学期里,希望我们能共同努力,学好这门功课! 教学目的 本课程是一门专业选修课,计算机科学是一种创造性思维活动,其教育必须面向设计。计算机算法设计与分析正是一门面向设计且处于计算机科学核心地位的课程。该课程系统地介绍了计算机算法的设计方法与分析技巧,对从事计算机软件和计算机应用的研究者来说是非常重要和必不可少的。通过本课程的学习: 1.系统的学习和研究计算机领域常见而有代表性的算法; 2.理解并掌握算法设计的主要方法; 3.培养对算法复杂性进行分析的能力。 为独立地设计算法和对算法进行分析奠定坚实的知识基础。 教学计划 1 导引和基本数据结构 2学时 2 分治法 4学时 3 贪心方法 4学时 4 动态规划 4学时 基本检索与周游方法 4学时 6 回溯法 4学时 7 分枝界限法 4学时 什么是算法 早在公元前300年左右出现的著名的欧几里德算法,就描述了求解两个整数的最大公因子的解题步骤。要求解的问题描述为:“给定两个正整数m和n,求它们的最大公因子,即能同时整除m和n的最大整数”。欧几里德当时给出的算法如下: ⑴ 以n除m,并令所得余数为r(必有rn); ⑵ 若r=0,输出结果n,算法结束;否则继续步骤⑶; ⑶ 令m=n和n=r,返回步骤⑴继续进行。 什么是算法(续) 由此,我们可以得出这样的结论,算法就是求解问题的方法和步骤。这里的方法和步骤是一组严格定义了运算顺序的规则;每一个规则都是有效的,且是明确的;按此顺序将在有限次数下终止。 有关算法(Algorithm)一词的定义不少,但其内涵基本上是一致的。最为著名的定义是计算机科学家D.E.Knuth在其巨著《计算机程序的艺术》( Art of Computer Program)第一卷中所做的有关描述。其非形式化的定义是: 一个算法,就是一个有穷规则的集合,其中之规则定义了一个解决某一特定类型问题的运算序列。 克努斯-莫里斯-普拉特算法 Knuth-Morris-Pratt 字符串查找算法(常简称为 “KMP算法”)是在一个“主文本字符串” S 内查找一个“词” W 的出现,通过观察发现,在不匹配发生的时候这个词自身包含足够的信息来确定下一个匹配将在哪里开始,以此避免对以前匹配过的字符重新检查。 这个算法是由高德纳(Donald Ervin Knuth)和沃恩·普拉特在1977年合作发明的,同年詹姆斯·H·莫里斯也独立地设计出该算法,但是最终由三人联合发表。 什么是算法(续) 算法的形式化定义如下所述: 算法是一个四元组,即(Q,I,Ω,F)。 其中: Q是一个包含子集I和Ω的集合,它表示计算的状态; I表示计算的输入集合; Ω表示计算的输出集合; F表示计算的规则,它是由Q至它自身的函数,且具有自反性,即对任何一个元素q∈ Q,有F(q)=q。 什么是算法(续) 一个算法是对于任何的输入元素x,都在有穷步骤内终止的一个计算方法。 在算法的形式化定义中,对任何一个元素x∈I,x均满足性质 x0=x,xk+1=F(xk),(k≥0) 该性质表示任何一个输入元素x均为一个计算序列,即x0,x1,x2,…,xk;该序列在第k步结束计算。 算法的五大特性: 好算法的特征 (1) 正确 算法必须满足问题的要求,即对合法的输入能产生求解问题的正确结果;对不合法的输入能作出相适应的反映并进行处理。 (2) 可读 能交流,它有助于人们对算法的理解、调试和修改。 (3) 运行时间短。 (4) 占用内存尽量少。 算法设计的原则 1.正确性——合理的数据输入下,在有限的运行时间内得出正确的结果。 2. 可读性——供人们阅读的方便程度。 3.健壮性——对不合理的数据输入的反应和处理能力。 4.简单性——采用数据结构和方法的简单程度。 5. 时间复杂度(计算复杂度)——算法运行时间的相对量度。 6. 空间复杂度——算法运行中临时占用空间大小的量度。 所设计出来的算法要能够正确求解给定的问题。 这就要求算法中的每一个步骤的描述是准确无歧义的,并
您可能关注的文档
最近下载
- 招标代理机构入围 投标方案(技术方案).docx
- GB 50017-2003 钢结构设计规范.docx VIP
- 2025年湖南劳动人事职业学院单招语文考试模拟试题及答案解析.pdf VIP
- 高中物理游标卡尺、千分尺、螺旋测微器读数习题.docx VIP
- 湖南劳动人事职业学院单招测试题(附解析)英语.pdf VIP
- 重磅——2017年全国卷文言文挖空训练学生版及教师版.pdf VIP
- 大班《闽南红砖古厝》.pptx VIP
- 2024贵州黔南州面向优秀村(社区)干部专项招聘乡镇(街道)事业单位工作人员35笔试备考题库及答案解析.docx VIP
- 2025共青团入团考试题库及完整答案.pdf
- 3 雪地里的小画家 课件(共21张PPT).pptx VIP
原创力文档


文档评论(0)