- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法设计与分析The Design and Analysis of Algorithms 主讲:曹严元 Email:cookie5@ cookiecyylq@ 课程简介 计算机科学是一种创造性思维活动,其教育必须面向设计。 算法设计与分析正是一门面向设计,且处于计算机学科核心地位的教育课程。 通过对算法设计策略的系统学习与研究, 理解和掌握算法设计的主要方法, 培养对算法的计算复杂性进行正确分析的能力, 为独立地设计算法和对给定算法进行复杂性分析奠定坚实的理论基础。 算法与数据结构 数据结构关心的是不同的数据结构在计算机解题中的作用和效率;算法则着重于算法设计技术的适用性和效率。 数据结构关心的是计算机解题的具体问题,而算法设计与分析提升为一种解决问题的通用方法。 学习所需的知识背景 基本的编程技能 算法的描述语言 离散数学 数据结构 各章算法的学习方法 设计策略的基本思想 基于实际问题的经典算法 对算法的分析 算法的实现 算法在解决实际问题中的应用 实验与作业 实验环境 任选,推荐C++, Java 实验要求 每一类算法至少实现一个程序,要求实验报告(算法设计过程,算法分析,算法改进,实验数据),源程序,可执行文件 作业要求 主要内容介绍 第1章 算法概述 第2章 递归与分治策略 第3章 动态规划 第4章 贪心算法 第5章 回溯法 第6章 分支限界法 第7章 随机化算法 第8章 线性规划与网络流 第9章 NP完全性理论与近似算法 第1章 算法概述 主要知识点: 理解算法的概念。 理解什么是程序,程序与算法的区别和内在联系。 掌握算法的计算复杂性概念。 掌握算法渐近复杂性的数学表述。 掌握用C++语言描述算法的方法。 1.1 引言 算法设计与分析在计算机科学与技术中的地位。 算法(Algorithm)一词的由来。 什么是算法? 算法学 分析仪一经存在,它就必将引导科学未来的进程。无论何时,只要借助于它来寻找结果,就会引发一个问题——用什么样的计算过程可以让机器在最短的时间内得到结果? ——Charles Babbage,1864 1.1.1 算法的定义和特征 一、算法的定义: 定义1.1 算法是解某一特定问题的一组有穷规则 的集合。 二、算法的特征: 1.有限性。算法在执行有限步之后必须终止。 2.确定性。算法的每一个步骤,都有精确的定义。要执行的每一个动作都是清晰的、无歧义的。 1.1.1 算法的定义和特征 3.输入。一个算法有0个或多个输入,它是由外部提供的,作为算法开始执行前的初始值,或初始状态。算法的输入是从特定的对象集合中抽取的。 4.输出。一个算法有一个或多个输出,这些输出,和输入有特定的关系,实际上是输入的某种函数。不同取值的输入,产生不同结果的输出。 5.能行性。算法的能行性指的是算法中有待实现的运算,都是基本的运算。原则上可以由人们用纸和笔,在有限的时间里精确地完成。 1.1.2 算法与程序 算法是解某一特定问题的一组有穷规则的集合。具有有限性、确定性、输入、输出和能行性的特征。 程序是算法用某种程序设计语言的具体实现。程序可以不满足算法有限性的性质。 表达算法的抽象机制 1.从机器语言到高级语言的抽象 高级程序设计语言的主要好处是: (1)高级语言更接近算法语言,易学、易掌握,一般工程技术人员只需要几周时间的培训就可以胜任程序员的工作; (2)高级语言为程序员提供了结构化程序设计的环境和工具,使得设计出来的程序可读性好,可维护性强,可靠性高; (3)高级语言不依赖于机器语言,与具体的计算机硬件关系不大,因而所写出来的程序可植性好、重用率高; (4)把繁杂琐碎的事务交给编译程序,所以自动化程度高,开发周期短,程序员可以集中时间和精力从事更重要的创造性劳动,提高程序质量。 表达算法的抽象机制 2.抽象数据类型 抽象数据类型是算法的一个数据模型连同定义在该模型上并作为算法构件的一组运算。 抽象数据类型带给算法设计的好处有: (1)算法顶层设计与底层实现分离; (2)算法设计与数据结构设计隔开,允许数据结构自由选择; (3)数据模型和该模型上的运算统一在ADT中,便于空间和时间耗费的折衷; (4)用抽象数据类型表述的算法具有很好的可维护性; (5)算法自然呈现模块化; (6)为自顶向下逐步求精和模块化提供有效途径和工具; (7)算法结构清晰,层次分明,便于算法正确性的证明和复杂性的分析。 问题求解(Problem Solving) 1.2 算法的复杂性分析 问题:效率和方法。 问题一:如何设计算法,算法的设计方法。 问题二:如何分析算法,算法的复杂性分析。 用算法的复杂性
您可能关注的文档
- ArcGIS9.3安装与卸载.ppt
- arcgis10第10课 地形分析.ppt
- Arcgis Engine开发从入门到精通 第七章.ppt
- Arcgis Engine开发从入门到精通 第十三章.ppt
- arcgis软件.ppt
- C++ 课程简介.ppt
- ch1-1.1操作系统的概观.ppt
- ch01 Oracle体系结构.ppt
- Ch2 算法.ppt
- ch2算法效率分析基础.ppt
- 浙江衢州市卫生健康委员会衢州市直公立医院高层次紧缺人才招聘11人笔试模拟试题参考答案详解.docx
- 浙江温州泰顺县退役军人事务局招聘编外工作人员笔试备考题库及参考答案详解一套.docx
- 江苏靖江市数据局公开招聘编外工作人员笔试模拟试题及参考答案详解.docx
- 广东茂名市公安局电白分局招聘警务辅助人员40人笔试模拟试题带答案详解.docx
- 江苏盐城市大丰区住房和城乡建设局招聘劳务派遣工作人员4人笔试模拟试题带答案详解.docx
- 浙江舟山岱山县东沙镇人民政府招聘笔试模拟试题及参考答案详解1套.docx
- 最高人民检察院直属事业单位2025年度公开招聘工作人员笔试模拟试题含答案详解.docx
- 浙江金华市委宣传部、中共金华市委网信办所属事业单位选调工作人员笔试备考题库及答案详解1套.docx
- 广东深圳市党建组织员招聘40人笔试模拟试题及答案详解1套.docx
- 江苏南京水利科学研究院招聘非在编工作人员4人笔试模拟试题及参考答案详解.docx
文档评论(0)