- 1、本文档共64页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法设计:第一讲—的—2013
算法分析与复杂度计算;计算机系统中的任何软件(系统软件、应用软件)都是按照特定的算法来实现的。
算法的好坏直接决定所实现软件性能的优劣。;设计软件时需要解决的问题:
(1)用什么方法设计软件
(2)设计的算法需要什么样的资源
(3)需要多少运行时间
(4)需要多少存储空间;参考教材:
1、王晓东. 算法设计与分析(第2版). 清华大学出版社.
2、潘彦. 算法设计与分析基础(第2版). 清华大学出版社.
3、郑宗汉. 算法设计与分析. 清华大学出版社. ;课程的侧重点:
算法设计
第三章:算法设计的基本工具和优化技术
第四章:通用的算法设计基本策略
第五章:复杂问题的算法设计策略
第六章:采用不同策略解决相同问题,并进行效率分析。
算法分析:对设计的算法进行时间和空间复杂度的分析。
; 第 一 章
算 法 概 述;人类使用计算机的目的:计算机作为工具,帮助人类求解问题。
算法设计的重点:把人类找到的求解问题的方法、步骤以过程化、形式化和机械化的形式表现出来,以便让计算机执行。
算法分析:是对一个算法需要多少计算时间和存储空间作定量的分析 ——复杂度计算。
;1.1.1 用计算机求解问题的步骤; 问题分析
数学模型建立
算法设计与选择
算法表示
算法分析
算法实现
程序调试
结果整理文档编制;问题分析:准确、完整地理解和描述问题是解决问题的第一步。
数学模型建立:用计算机解决实际问题必须有合适的数学模型。
算法设计与选择:算法设计是指设计求解某一特定类型问题的一系列步骤,并且这些步骤是可以通过计算机的基本操作来实现的。;
算法分析:对算法的某些特定输入,估算该算法所需的内存空间和运行时间;其次是为了建立衡量算法优劣的标准,用以比较同一类问题的不同算法。通常将时间和空间的增长率作为衡量的标准。;算法表示:对于复杂的问题,确定算法后可以通过图形准确表示算法。算法的表示方式很多如:算法流程图、盒图、PAD图和伪码(类似于算法设计语言)等。
算法实现:根据选用的程序设计语言,编写出计算机能够执行的程序。;
程序调试:算??测试的实质是对算法应完成任务的实验证实,同时确定算法的使用范围。测试方法一般有两种:白盒测试对算法的各个分支进行测试;黑盒测试检验对给定的输入是否有指定输出。
;结果整理文档编制:编制文档的目的是让人了解你编写的算法。
在这些步骤中,算法设计是解决问题的核心。其次是针对设计的算法进行复杂度分析。;1.1.2 算法及其要素和特性;1.1.2 算法及其要素和特性;算法的基本特征
有穷性: 一个算法在执行有穷步之后必须结束,而且要求运行这些步骤的时间是人们可以接受的。
确定性:在任何条件下,算法都只有一条执行路径。
可行性:算法中描述的操作都可以通过已经实现的基本操作运算有限次实现。
输入:有零个或多个输入
输出:有一个或多个输出;1.1.3 算法设计及基本方法;算法设计的基本方法
结构化方法——“自顶向下, 逐步求精”
“自顶向下”是将复杂、大的问题划分为小问题。
“逐步求精”是将现实世界的问题经抽象转化为逻辑空间或求解空间的问题。;面向对象方法
对象=数据+对数据操作的代码实体
面向对象算法设计方法的过程包括以下步骤:
① 在给定的抽象层次上识别类和对象
② 识别这些对象和类的语义
③ 识别类和对象之间的关系
④ 实现类和对象;本书采用的设计方法——结构化设计方法
自顶向下模块化分解过程
把一个较大的算法划分为若干子算法
每一个模块可继续划分为更小的子模块
直到用三种控制结构和具体操作表示算法
※注:运用这种编程方法,考虑问题必须先进行整体分析。;模块划分的基本要求——简单性、独立性和完整性
模块的功能尽可能地单一化、明确化
模块间的联系及相互影响尽可能地小
模块的规模应当足够小,以便于调试;算法设计的基本方法
抽象:包括算法的抽象和数据抽象。
算法抽象是指算法的寻求(或开发)采用逐步求精、逐层分解的方法。
数据抽象也指在算法抽象的过程中逐步完善数据结构和引入新的数据及确定关于数据的操作。
枚举:“枚举”一些真实数据
归纳:“归纳”出算法的细节;1.2.1 算法描述简介;本书采用类C语言的伪代码描述,具体细节约定如下:
三种基本控制结构的描述
数据结构说明
模块及模块间的接口方式的描述
其它细节说明 ;1.2.3 一个简单问题的求解过程;【例】求二个正整数的最大公约数。
问题分析:此题只需有小学知识,就可有以下建立以下的数学模型。
数学模型:a,b0 的整数,求c,c能整除a,b,且a/c与b/c互质。
算法设计:通过“枚举尝试”(逐个尝试)就可以“试出”a,b有哪些是公约数,并将这些公约数“累乘
您可能关注的文档
最近下载
- CAD链轮的画法 用CAD链轮的画法 实用.doc VIP
- 2025年电工技师考试题及答案.doc VIP
- 2024—2025学年江苏省苏州市沙溪高级中学高二上学期9月月考语文试卷.doc VIP
- 建筑工程项目管理制度.pdf VIP
- 运动康复中心的创新商业模式探索.docx VIP
- 员工婚丧及伤病住院慰问金实施办法.doc VIP
- TZZB 3693-2024 工程机械渗碳重载圆柱齿轮.pdf
- 护理查房急性心肌梗死护理查房.pptx VIP
- 统编版小学语文五年级上册第一单元 落花生 大单元学历案 教学设计附双减作业设计(基于新课标教学评一体化).docx VIP
- 2025年电工(技师)证考试题及电工(技师)试题答案 .pdf VIP
文档评论(0)