- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第1章_ 算法设计基础
* Algorithm Introduction * 1.3 重要的问题类型 2. 排序问题 将一个记录的无序序列调整为一个有序序列的过程。 排序的主要目的是为了快速查找。 同样没有十全十美的排序算法 * Algorithm Introduction * 1.3 重要的问题类型 3. 图问题 最古老最令人感兴趣。很多纷乱复杂的现实问题抽象出的数据模型都是图结构,如分子结构、排课问题、任务分配等。 TSP(Traveling Saleman Problem)问题:旅行n城市回到起点,每个城市只经历一次且总路程最短。 10城市 180000个可能解 20城市 6*1016个可能解 50城市 1062个可能解 * Algorithm Introduction * 1.3 重要的问题类型 4. 组合问题 一般都是最优化问题,即寻找一个组合对象,能够满足特定的约束条件并使得某个目标函数取得极值。 组合问题算是计算领域最难解的问题,因为: (1)随着问题规模增大,组合对象数量极快增长(爆炸) (2)绝大多数组合问题尚未找到有效算法在可接受的时间内得到正确的解。 0/1背包问题:给定n个重量为{w1, w2, … ,wn}、价值为{v1, v2, … ,vn}的物品和一个容量为C的背包,求这些物品中的一个最有价值的子集,并且要能够装到背包中。 2n个可能解 * Algorithm Introduction * 1.3 重要的问题类型 5. 几何问题 处理类似于点、线、面、体等几何对象。 难于符号化造成计算机难于处理。 最近对问题(closest pair problem):在给定平台上的n个点中,求距离最近的两个点。 凸包问题(convex hull problem):找出一个能把给定集合中的所有点都包含在里面的最小凸边形。 阿呆给领导送红包时,两人的对话颇有意思。领导:“你这是什么意思?”阿呆:“没什么意思,意思意思。”领导:“你这就不够意思了。”阿呆:“小意思,小意思。”领导:“你这人真有意思。”阿呆:“其实也没有别的意思。”领导:“那我就不好意思了。”阿呆:“是我不好意思。” * Algorithm Introduction Algorithm Introduction Algorithm Introduction Algorithm Introduction 第1章 算法绪论 1.1 算法的基本概念 1.2 为什么要学习和研究算法 1.3 重要的问题类型 * Algorithm Introduction * 算法理论的两大论题: 1. 算法设计(解决问题) 2. 算法分析(评价,改进) 本章主要知识点: 1.1 算法的基本概念 1.1.1 算法及其重要特性 1.1.2 算法的描述方法 1.1.3 算法设计的一般过程 * Algorithm Introduction * 算法及其重要特性 算法(Algorithm)? 算法是对特定问题求解步骤的一种描述,是指令的有限序列,有以下五大特性: 输 入:一个算法有零个或多个外部量作为算法的输入。 输 出:一个算法会产生至少一个量作为输出。 有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。 确定性:算法中的每一条指令必须有确切的含义,对于相同的输入只能得到相同的输出。 可行性:算法描述的操作可以通过已经实现的基本操作执行有限次来实现。 * Algorithm Introduction * 算法及其重要特性 例1.1 求两个自然数的最大公约数(直观的方法) 第1步:找出m的所有质因子; 第2步:找出n的所有质因子; 第3步:从第上述两步所得到的质因子中找出所有公因子; 第4步:将所有公因子相乘,即为m和n的最大公约数 * Algorithm Introduction * 这是算法吗? 为什么? 算法及其重要特性 程序? 是算法用某种程序设计语言的具体实现。程序可以不满足算法的性质(3),即有穷性。 “好算法”的重要特性: (1)正确性:合法的输入,都会得出正确的结果 (2)健壮性:非法的输入,应能识别并处理 (3)可理解性:可读性,易理解 (4)抽象分级:通过抽象分级减少求解步骤 (5)高效性:时间和空间效率 * Algorithm Introduction * 1.1 算法的基本概念 1.1.1 算法及其重要特性 1.1.2 算法的描述方法 1.1.3 算法设计的一般过程 * Algorithm Introduction * 1.1.2 算法的描述方法 * Algorithm Introduction * 为了清楚准确地将算法求解的步骤记录下来,必须要描述算法,常用的方法:自然语言、流程图、程序设计语言和伪代码等 ⑴ 自然语
文档评论(0)