- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法设计与分析 林劼 email:linjie@uestc.edu.cn 课程介绍 学时:32学时+16实验 考试方式:考试 成绩:20%中期考试+10%平时+70%期末 教材: 王晓东,算法设计与分析(第二版),清华大学出版社; 参考资料: [1]张德富 ,算法设计与分析 ,国防工业出版社; [2]Michael T. Goodrich ,算法分析与设计 ,人民邮电出版社 。 [3] Kleinberg 等 ,算法导论,清华大学出版社 主要内容介绍 第1章 算法引论 第2章 递归与分治策略 第3章 动态规划 第4章 贪心算法 第5章 回溯法 第6章 NP完全性理论 课程信息 2009年计算机学院《算法》选修课:选修人数: 112 参加期末考试人数: 79 合格人数: 57最高分: 94 2011年计算机学院《算法》必修课:选修人数: 100 平均分:68.7 最高分: 89 建议:1. If you do not like math or analysis or logic, please note that the course may be a high load for you. (this course needs your time)2. Read the lecture notes carefully, which will be more helpful for you than the text books.3. Make sure that you can solve the problems that I put highlines in the course. 1.1 基本介绍 思考 计算机问题 三种不同的计算机问题 Algorithms(算法) 1. a method or a process followed to solve a problem using a computer 2. takes the input of a problem and transforms it to the output 3. A problem can have many algorithms Algorithm Properties(算法的性质) 输 入:有零个或多个外部量作为算法的输入。 输 出:算法产生至少一个量作为输出。 确定性:组成算法的每条指令清晰、无歧义。 有限性:算法中每条指令的执行次数有限,执行每条指令的时间也有限。 程序(program)与算法(algorithm) 算法设计思想总结 对计算问题的算法设计 常用算法设计方法 1.2 一些算法问题 活动安排问题 Input. 一系列活动,每个活动有一个起始时间和结束时间. Goal. 找出最大一组活动,使得这些活动两两的时间不重叠。 带权重的活动安排问题 Input. 一系列活动,每个活动有一个起始时间和结束时间,还有一个权值。 Goal. 找出一组权重最大的活动,使得这些活动两两的时间不重叠。 二分图匹配问题 最大独立集问题 1.3 算法复杂性分析 一个故事 在席·盖莫夫著的《从一到无穷大》中记载着一个关于古印度舍罕王(Shirham)的故事: 什么问题? Shirham’s story. The amount of wheat 算法复杂性分析 1.4 算法复杂性分析 1.4 算法复杂性分析 渐进表达 渐进分析 算法复杂性分析 成绩构成:平时10分,小测试10分,实验10分,期末考试70分,要求期末考试40%以上通过才算通过。 可能有一个小测试,10分。 穷举搜索法(Exhaustive Search Method),是从有限集合中,逐一列举集合的所有元素,对每一个元素逐一判断和处理,从而找出问题的解。 分治法(Divide and Conquer). 分治法的思想是把一个问题分解成同Desgin 类型的一些子问题,每个子问题又分成更多子问题,最后通过子问题的解求出原始问题的解,所以分治法的技术通常是导致一个递归算法。使用分治法设计的算法的例子有二分查找算法、快速排序算法以及融合(归并)排序算法等等。 贪心法(Greedy Method). 贪心法是根据一个事先确定的判定准则,每次都选取最优的部分解添加到当前的局部解集中,最后由一系列的局部最优解组成全局解。用贪心法设计的算法有选择排序算法以及图的最小生成树算法等。贪心法的实质是在面临多种选择时,永远选择最优的一个。比如吃葡萄时每次都挑选最大的一颗吃。 回溯法(Back Tracking). 回溯法的思想就比如老鼠走迷宫,迷宫中有很多岔路,老鼠不知道哪条路可以走出去,那它应该采取什么策略呢?它可以一直往前走,直到
文档评论(0)