- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CH_01
算法设计与分析 福建师范大学软件学院 肖如良 E-Mail:xiaoruliang@163.com 2011年8月30日 课程简介 课程名称:算法设计与分析 英文名称:The Design and Analysis of Algorithms 课程类别:专业课 先修课程:《C++程序设计》、《离散数学》、《数据结构》 周学时数:4 总学时数:72学时(理论36学时,实验36学时) 课程简介: 本课程主要介绍许多经典的非数值算法设计的常用方法,如贪婪法、递归、回溯法、动态规划法、分治法、探索法、分枝限界法等,分析这些算法的时间和空间复杂性。通过学习算法分析,掌握估计算法的时空复杂度的方法,从而能够正确地评价一个算法,设计出真正好的、有效的算法。 教材名称:计算机算法设计与分析(第三版) 教材主编:王晓东 出版日期:2007年5月 出 版 社:电子工业出版社 重点参考: 1. T.H.Cormen. 算法导论. 北京:机械工业出版社.2009 关于本课程 课程目的:计算机算法设计与分析导引 以算法设计为主,介绍算法设计的主要方法和基本思想;并简要介绍算法分析概念 不是程序设计课,也不是数学课 授课形式:上课+作业实现+期末考试 参考资料: Web资源 , , … 图书资源 /, … 第1章 算法概述 本章主要知识点: 1.1 算法与程序 1.2 算法与数据结构 1.3 表达算法的抽象机制 1.4 描述算法与算法设计 1.5 算法分析的基本原则 1.6 算法复杂性分析 计划授课时间:4课时 1.1 算法与程序 算法:是满足下述性质的指令序列。 输入:有零个或多个外部量作为算法的输入。 输出:算法产生至少一个量作为输出。 确定性:组成算法的每条指令清晰、无歧义。 有限性:算法中每条指令的执行次数有限,执行每条指令的时间也有限。 程序: 程序是算法用某种程序设计语言的具体实现。 程序可以不满足算法的性质(4)即有限性。 例如操作系统,是一个在无限循环中执行的程序,因而不是一个算法。操作系统的各种任务可看成是单独的问题,每一个问题由操作系统中的一个子程序通过特定的算法来实现。该子程序得到输出结果后便终止。 1.2 算法与数据结构 描述算法可以有多种方式 自然语言方式、表格方式、图示形式等 本书将采用C++与自然语言相结合的方式 算法与数据结构的关系 不了解施加于数据上的算法就无法决定如何构造数据,可以说算法是数据结构的灵魂; 反之算法的结构和选择又常常在很大程度上依赖于数据结构,数据结构则是算法的基础。 算法+数据结构=程序 1.3 表达算法的抽象机制 从机器语言到高级语言的抽象 高级程序设计语言的主要好处是: 高级语言更接近算法语言,易学、易掌握,一般工程技术人员只需 要几周时间的培训就可以胜任程序员的工作; 高级语言为程序员提供了结构化程序设计的环境和工具,使得设计出来的程序可读性好,可维护性强,可靠性高; 高级语言不依赖于机器语言,与具体的计算机硬件关系不大,因而所写出来的程序可植性好、重用率高; 把繁杂琐碎的事务交给编译程序,所以自动化程度高,开发周期短,程序员可以集中时间和精力从事更重要的创造性劳动,提高程序质量。 1.3 表达算法的抽象机制 抽象数据类型 抽象数据类型是算法的一个数据模型连同定义在该模型上并作为算法构件的一组运算。 抽象数据类型带给算法设计的好处有: 算法顶层设计与底层实现分离; 算法设计与数据结构设计隔开,允许数据结构自由选择; 数据模型和该模型上的运算统一在ADT中,便于空间和时间耗费的折衷; 用抽象数据类型表述的算法具有很好的可维护性; 算法自然呈现模块化; 为自顶向下逐步求精和模块化提供有效途径和工具; 算法结构清晰,层次分明,便于算法正确性的证明和复杂性的分析。 1.4 描述算法与算法设计 描述算法可以有多种方式,如自然语言方式、图形表格方式等。在这里,我们将采用C++语言来描述算法。 C++语言的优点是类型丰富、语句精炼,具有面向对象和面向过程的双重优点。 用C++来描述算法可使整个算法结构紧凑、可读性强。 在课程中,有时为了更好地阐明算法的思路,我们还采用C++与自然语言相结合的方式来描述算法。 算法设计方法主要有:分治策略、动态规划、贪心算法、回溯法、分支限界、概率算法等,我们将在后面的章节中陆续介绍。 1.4 描述算法与算法设计 问题求解(Problem Solving) 1.5 算法分析的基本原则 正确性 定义:在给定有效输入后,算法经过有限时间的计算并产生正确的答案,就称算法是正确的。 正确性证明的内容: 方法的正确性证明——算法思路的正确性。证明一系列与算法的工作对象有关的引理、定理以及公式。 程序的正确性证明——证明所给出的一系列指令确实做了所要求的工作。 程序正确性
您可能关注的文档
最近下载
- 【期货市场技术分析】完整版——约翰.墨菲.doc VIP
- 秋季养生ppt课件.pptx
- 2023年北京电影学院导演专业真题.docx
- 课程设计-基于systemview的2ask信号调制与解调 .pdf VIP
- 2023年北京电影学院部分专业历届校考真题汇编.pdf VIP
- 絮凝剂对MBR活性污泥理化性质的影响研究.pdf VIP
- 2026年高考作文素材积累之九三阅兵:这一刻,与祖国同频共振.docx VIP
- 2025年辽宁省初中学业水平考试英语模拟试卷试题(含答案).pdf VIP
- 2025年辽宁省大连市中考英语模拟试卷.docx VIP
- 2025年中考英语冲刺模拟试卷-辽宁地区-学生版.pdf VIP
文档评论(0)