黑龙江大学计算机算法设计和分析_第一章.pptVIP

黑龙江大学计算机算法设计和分析_第一章.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机算法设计与分析 主讲教师:金英 【参考教材】 王晓东,计算机算法设计与分析 (第3版) ,电子工业出版社,2007。 Thomas H.Cormen, Charles E. Leiserson, and Ronald L. Rivest. Introduction to Algorithms (Second Edition), The MIT Press, 2002. [算法导论 (第二版)] 【课程基础】 本课程要求学生在学习之前已经熟练掌握C/C++程序设计,学习过高等数学、线性代数、离散数学、概率论与数理统计、数据结构等课程。 【主要教学内容】 设计算法及分析算法的理论、方法和技术; 可计算问题的算法设计与分析。 分为下述部分介绍: 算法概述 递归与分治策略 动态规划 贪心算法 回溯法 分支限界法 第一章:算法概述 第一节 算法在计算机科学中的地位 70年代前 计算机科学基础的主题没有被清楚地认清 70年代 Knuth出版了《The Art of Computer Programming》 以算法研究为主线确立了算法为计算机科学基础的重要主题 1974年获得图灵奖 70年代后 算法作为计算机科学核心推动了计算机科学技术飞速发展 解决一个计算问题的过程 可计算理论 计算模型 可计算问题/不可计算问题 计算模型的等价性--图灵/Church命题 计算复杂性理论 在给定的计算模型下研究问题的复杂性 固有复杂性 复杂性下界 平均复杂性 复杂性问题的分类: P=NP? 公理复杂性理论 算法设计和分析 设计算法的理论、方法和技术 分析算法的理论、方法和技术 计算机软件 系统软件 工具软件 应用软件 第二节 算法与程序 算法(Algorithm)的概念 通俗地讲 算法是指解决问题的一种方法或一个过程。 严格地讲 算法是由若干条指令组成的有穷序列,且满足下述性质: (1)输入: 有零个或多个由外部提供的量作为算法的 输入。 (2)输出: 算法产生至少一个量作为输出。 (3)确定性: 组成算法的每条指令是清晰的,无歧义的。 (4)有限性: 算法中每条指令的执行次数是有限的, 执行每条指令的时间也是有限的。 算法与程序的区别 程序是算法用某种程序设计语言的具体实现; 程序可以不满足算法的性质(4)----有限性。 例如: 操作系统,它是一个在无限循环中执行的程序,因而不是算法。可把操作系统的各种任务看成是一些单独的问题,每个问题由操作系统中的一个子程序通过特定的算法来实现。 算法描述 描述算法可以有多种形式。 本课程将用C/C++语言或伪代码描述算法。 算法复杂性的含义 一个算法的复杂性的高低体现在运行该算法所需的计算机资源(主要指时间和空间资源)的多少上。 随着计算机要解决的问题越来越复杂,规模越来越大,对求解这类问题的算法作复杂性分析具有特别重要的意义。 本课程考虑如下三种情况下的时间复杂度: 最坏情况;最好情况;平均情况。 例1:二分查找算法 int bsearch(K,L,H) { if (HL) return(-1); else { mid=(L+H) /2; element=A[mid]; if (element == K) return(mid); else if (A[mid]K) return(bsearch(K,L, mid-1)) ; else return(bsearch(K, mid+1,H)); } 例2:寻找最大元素 templateclass T int Max(T a[], int n) {//寻找a[0:n-1]中的最大元素 int pos=0;

文档评论(0)

***** + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档