网站大量收购独家精品文档,联系QQ:2885784924

第1章_基础算法设计与分析详解.ppt

  1. 1、本文档共67页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第1章_基础算法设计与分析详解

Software College, Northeast University neuzl@163.com 算法设计与分析 The Analysis and Design of Algorithms 东北大学软件学院 与其他课程的关系 About Algorithm 课程主要讨论和介绍计算机算法的复杂性理论,主要介绍计算机科学及应用领域常见的有代表性的非数值算法及算法设计的若干重要方法,同时,介绍算法分析的基本知识。 你可以学到:算法设计方法、分析基本技术、锻炼逻辑思维。 先修课程:离散数学、数据结构、高级程序设计语言。 课程内容 算法概述(Foundation) 递归与分治策略(Divide and Conquer) 动态规划(Dynamic Programming) 贪心算法(Greedy Algorithm) 回溯法(Back Tracking) 分支限界法(Branch and Bound ) Teaching Material: 计算机算法设计与分析(第3版). 王晓东. 电子工业出版社. 2007年5月 References [1]Introduction to Algorithms, Second Edition. Thomas H. Cormen. The MIT Press. [2] 算法设计与分析基础. (美)Anany Levitin 著,潘彦译. 北京:清华大学出版社. 2004年6月 第1章 算法概述 1.1 算法与程序 1.2 算法复杂性分析初步 本章教学要求 理解算法与程序的概念,二者区别与联系 掌握算法复杂性的渐近性态的数学表述 掌握描述算法的方法 重点 理解算法与程序 算法复杂性的渐近性态的数学表述 算法表示方法 难点 算法复杂性的渐进性态的数学表述 What’s Algorithm? 算法是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。 What is an algorithm? Input valid inputs are clearly specified Output can be proved to produce the correct output given a valid input Definiteness rigorously and unambiguously specified Finiteness terminates after a finite number of steps Effectiveness steps are sufficiently simple and basic 算法的五个重要特征 输入 有零个或多个由外部提供的量作为算法的输入. 输出 算法产生至少一个量作为输出. 确定性 组成算法的每条指令是清晰的,无歧义的. 有限性 在执行了有穷步骤后运算终止. 可行性 运算都是基本运算,原理上能在有限时间内完成. Example of computational problem: sorting Statement of problem: Input: A sequence of n numbers a1, a2, …, an Output: A reordering of the input sequence a′1, a′2, …, a′n so that a′i ≤ a′j whenever i j Instance: The sequence 5, 3, 2, 8, 3 Algorithms: Selection sort Insertion sort Merge sort (many others) 一般求d=gcd(m,n)的过程用自然语言可以描述如下: (1) 找出m的素因子; (2) 找出n的素因子; (3) 找出m,n的公共的素因子; (4) 计算所有公共素因子的乘积,结果即为m,n的最大公约数。 这样的过程能称之为算法吗? 计算gcd(m,n)的连续整数检测算法 第一步:将min{m,n}的值赋给t。 第二步:m除以t,如果余数为0,进入第三步;否则进入第四步。 第三步:n除以t,如果余数为0,返回t的值作为结果;否则,进入第四步。 第四步:把t的值减1。返回第二步。 例:对于60和24这两个数,该算法会先尝试 24,然后是23,这样一直尝试到12,算法结束。 欧几里德算法 gcd ( m, n ) = gcd ( n, m mod n ) gcd ( 24, 18 ) = gcd ( 18, 6 ) = gcd ( 6, 0 ) =

文档评论(0)

ee88870 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档