算法设计基础ppt课件.ppt
《算法设计基础ppt课件.ppt》由会员分享,可在线阅读,更多相关《算法设计基础ppt课件.ppt(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、算法设计与分析算法设计与分析 授课教师:刘志中授课教师:刘志中 QQ:120511193 TEL:15838939240第一章第一章 算法设计基础算法设计基础1234算法的基本概念算法的基本概念为什么学习和研究算法为什么学习和研究算法重要的问题类型重要的问题类型小小 结结 算法及其特性算法及其特性算法是对特定问题求解步骤的一种描算法是对特定问题求解步骤的一种描述,是指令的有限序列。述,是指令的有限序列。算法的特性算法的特性4确定性确定性2输出输出3有穷性有穷性1输入输入5可行性可行性 算法及其特性算法及其特性1输入输入 这些输入通常取自于某个特定的对象的集合这些输入通常取自于某个特定的对象的集
2、合 零个或多个输入零个或多个输入 算法及其特性算法及其特性2输出输出 通常输入与输出之间有着某种特定的关系通常输入与输出之间有着某种特定的关系 有一个或多个输出有一个或多个输出 算法及其特性算法及其特性3有穷性有穷性 必须总是在执行又穷步之后结束,且每一步必须总是在执行又穷步之后结束,且每一步都在有穷时间内完成都在有穷时间内完成 算法及其特性算法及其特性4确定性确定性 算法中每一条指令必须有确切的含义,不存算法中每一条指令必须有确切的含义,不存在二义性;在二义性;在任何情况下,对于相同的输入只能得到相同在任何情况下,对于相同的输入只能得到相同的输出;的输出; 算法及其特性算法及其特性5可行性可
3、行性可以通过程序实现操作;可以通过程序实现操作;Problem Problem 问题问题规定了输入与输出之间的关系,可以用通用语规定了输入与输出之间的关系,可以用通用语言来描述;言来描述;Instance of a Problem Instance of a Problem 问题实例问题实例某一个问题实例包含了求解该问题所需输入;某一个问题实例包含了求解该问题所需输入;输入输入: : 由由n n个数组成的一个序列个数组成的一个序列 输出输出: : 对输入系列的对输入系列的 一个排列一个排列( (重排)重排) ,使得,使得 排序问题的一个实例排序问题的一个实例Input: Input: Outp
4、ut: Output: 算法概念理解算法概念理解: 问题及问题实例问题及问题实例算法的其他特性算法的其他特性4抽象分级抽象分级2健壮性健壮性3可理解性可理解性1正确性正确性5高效性高效性算法的其他特性算法的其他特性1正确性正确性对于任意合法的输入,算法都会得到正确的对于任意合法的输入,算法都会得到正确的结果;结果;算法的其他特性算法的其他特性2健壮性健壮性算法对非法输入的抵抗能力;算法对非法输入的抵抗能力;对错误的输入,算法应能识别并作出处理;对错误的输入,算法应能识别并作出处理;而不产生错误的动作或陷入瘫痪;而不产生错误的动作或陷入瘫痪;危害:美国电话电报公司危害:美国电话电报公司算法的其他
5、特性算法的其他特性3 可理解性可理解性容易理解与实现;容易理解与实现;易于被人理解,易于转换成程序;易于被人理解,易于转换成程序;算法的其他特性算法的其他特性4抽象分级抽象分级对某些具体的细节进行抽象;不过细地描述对某些具体的细节进行抽象;不过细地描述细节;细节;算法步骤太多,会增加算法的理解难度;算法步骤太多,会增加算法的理解难度;算法的其他特性算法的其他特性5高效性高效性时间效率与空间效率;时间效率与空间效率;时间效率时间效率-求解速度;求解速度;空间效率空间效率-额外的存储空间;额外的存储空间;理想目标:较短的执行时间、较少的辅助空间;理想目标:较短的执行时间、较少的辅助空间; 算法的描
6、述方法算法的描述方法4程序设计语言程序设计语言2程序流程图程序流程图3伪代码伪代码1自然语言自然语言 算法的描述方法算法的描述方法1自然语言自然语言 优点:容易书写、容易理解优点:容易书写、容易理解 缺点缺点: (1)歧义性,二义性,不满足确定性;歧义性,二义性,不满足确定性; (2) 自然语言不够简练,导致算法描述过长;自然语言不够简练,导致算法描述过长; (3) 抽象级别高,不易转换成计算机程序抽象级别高,不易转换成计算机程序 算法的描述方法算法的描述方法2程序流程图程序流程图 优点:直观易懂、能够随意表示控制流程;优点:直观易懂、能够随意表示控制流程; 缺点缺点: (1)严密性不如程序设
7、计语言;严密性不如程序设计语言; (2) 灵活性不如自然语言;灵活性不如自然语言; 算法的描述方法算法的描述方法3伪代码伪代码 伪代码是介于自然语言和程序设计语言之间伪代码是介于自然语言和程序设计语言之间的方法;它采用某一程序设计语言的基本语法,的方法;它采用某一程序设计语言的基本语法,操作指令可以结合自然语言来设计。操作指令可以结合自然语言来设计。 伪代码不是一种实际的编程语言,但在表达伪代码不是一种实际的编程语言,但在表达能力上类似于编程语言,同时极小化描述算法能力上类似于编程语言,同时极小化描述算法不必要的细节,是比较合适的算法描述语言,不必要的细节,是比较合适的算法描述语言,被称为被称
8、为“算法语言算法语言”或或“第一语言第一语言”。 算法设计的一般过程算法设计的一般过程1理解问题理解问题 求解目标、已知信息、求解目标、已知信息、 显示条件、隐含条件显示条件、隐含条件 输入什么、输出什么、结果的呈现输入什么、输出什么、结果的呈现 全面准确地理解、分析问题,能够事半功倍全面准确地理解、分析问题,能够事半功倍 算法设计的一般过程算法设计的一般过程2选择算法设计技术选择算法设计技术 算法设计策略;算法设计策略; 本课程所讲解的方法可以用于解决不同领域本课程所讲解的方法可以用于解决不同领域的不同问题;的不同问题; 蛮力法、分治法、减治法、动态规划、回溯等蛮力法、分治法、减治法、动态规
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 设计 基础 ppt 课件
限制150内