版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
算法设计与分析
授课教师:刘志中
lzzmff@126.comQQ:120511193TEL法设计与分析授课教师:刘志中第一章算法设计基础1234算法的基本概念为什么学习和研究算法重要的问题类型小结第一章算法设计基础1234算法的基本概念为什么学习和研究算1算法及其特性算法是对特定问题求解步骤的一种描述,是指令的有限序列。算法的特性4确定性2输出3有穷性1输入5可行性1算法及其特性算法是对特定问题求解步骤的一种描述,是指令1算法及其特性1输入这些输入通常取自于某个特定的对象的集合零个或多个输入1算法及其特性1输入这些输入通常取自于某个特定的对象1算法及其特性2输出通常输入与输出之间有着某种特定的关系有一个或多个输出1算法及其特性2输出通常输入与输出之间有着某种特定的1算法及其特性3有穷性必须总是在执行又穷步之后结束,且每一步都在有穷时间内完成1算法及其特性3有穷性必须总是在执行又穷步之后结束,1算法及其特性4确定性算法中每一条指令必须有确切的含义,不存在二义性;在任何情况下,对于相同的输入只能得到相同的输出;1算法及其特性4确定性算法中每一条指令必须有确切的含1算法及其特性5可行性可以通过程序实现操作;1算法及其特性5可行性可以通过程序实现操作;Problem—
问题规定了输入与输出之间的关系,可以用通用语言来描述;InstanceofaProblem—
问题实例某一个问题实例包含了求解该问题所需输入;输入:由n个数组成的一个序列<a1,a2,,an>输出:对输入系列的一个排列(重排)<a1’,a2’,,an’>,使得<a1’a2’
an’>排序问题的一个实例Input:<31,41,59,26,41,58>——Output:<26,31,41,41,58,59>算法概念理解:问题及问题实例Problem—问题输入:由n个数组成的一个序列<a1算法的其他特性4抽象分级2健壮性3可理解性1正确性5高效性算法的其他特性4抽象分级2健壮性3可理解性1正确性5高效性算法的其他特性1正确性对于任意合法的输入,算法都会得到正确的结果;算法的其他特性1正确性对于任意合法的输入,算法都会得到正确的算法的其他特性2健壮性算法对非法输入的抵抗能力;对错误的输入,算法应能识别并作出处理;而不产生错误的动作或陷入瘫痪;危害:美国电话电报公司算法的其他特性2健壮性算法对非法输入的抵抗能力;对错误的输入算法的其他特性3可理解性容易理解与实现;易于被人理解,易于转换成程序;算法的其他特性3可理解性容易理解与实现;易于被人理解,易于转算法的其他特性4抽象分级对某些具体的细节进行抽象;不过细地描述细节;算法步骤太多,会增加算法的理解难度;算法的其他特性4抽象分级对某些具体的细节进行抽象;不过细地描算法的其他特性5高效性时间效率与空间效率;时间效率---求解速度;空间效率---额外的存储空间;理想目标:较短的执行时间、较少的辅助空间;算法的其他特性5高效性时间效率与空间效率;时间效率---求解
算法的描述方法4程序设计语言2程序流程图3伪代码1自然语言算法的描述方法4程序设计语言2程序流程图3伪代码1自然语
算法的描述方法1自然语言
优点:容易书写、容易理解
缺点:(1)歧义性,二义性,不满足确定性;(2)自然语言不够简练,导致算法描述过长;(3)抽象级别高,不易转换成计算机程序算法的描述方法1自然语言优点:容易书写、容易理解
算法的描述方法2程序流程图
优点:直观易懂、能够随意表示控制流程;
缺点:(1)严密性不如程序设计语言;(2)灵活性不如自然语言;算法的描述方法2程序流程图优点:直观易懂、能够随意
算法的描述方法3伪代码
伪代码是介于自然语言和程序设计语言之间的方法;它采用某一程序设计语言的基本语法,操作指令可以结合自然语言来设计。
伪代码不是一种实际的编程语言,但在表达能力上类似于编程语言,同时极小化描述算法不必要的细节,是比较合适的算法描述语言,被称为“算法语言”或“第一语言”。算法的描述方法3伪代码伪代码是介于自然语言和程序设
算法设计的一般过程1理解问题
求解目标、已知信息、
显示条件、隐含条件
输入什么、输出什么、结果的呈现
全面准确地理解、分析问题,能够事半功倍算法设计的一般过程1理解问题求解目标、已知信息、
算法设计的一般过程2选择算法设计技术
算法设计策略;
本课程所讲解的方法可以用于解决不同领域的不同问题;
蛮力法、分治法、减治法、动态规划、回溯等
基于这些基本的算法与技术,设计出高效、智能的好算法!算法设计的一般过程2选择算法设计技术算法设计策略;
算法设计的一般过程3设计并描述算法
清楚地描述算法的步骤;
描述方法:自然语言、流程图、伪代码
本课程:C++与自然语言---伪代码算法设计的一般过程3设计并描述算法清楚地描述算法的
算法设计的一般过程4手工运行算法
计算机比较傻;比较机械,吩咐干啥就干啥
发现不了算法中的逻辑错误;
解决方法:手工运行算法;带入一个具体的事例,按照算法流程走一遍;
实例的选择:尽可能地覆盖多个方面;考虑问题的特殊性;算法设计的一般过程4手工运行算法计算机比较傻;比较
算法设计的一般过程5分析算法的效率
时间效率与空间效率;
更关注的是时间效率;
算法性能比较:时间短、效果好!算法设计的一般过程5分析算法的效率时间效率与空间效
算法设计的一般过程6实现算法
计算机不能直接执行伪代码;
算法是需要不断完善和改进的;算法设计的一般过程6实现算法计算机不能直接执行伪代
算法设计的一般过程待求解的问题分析问题选择算法设计技术设计并描述算法分析算法的效率手工运行算法根据算法编写代码不满意满意算法设计的一般过程待求解的问题分析问题选择算法设计技术
算法设计实例1.2例1.2求两个自然数的最大公约数求解思路:用短除法找出两个自然数的所有公因子,将这些公因子相乘,结果就是这两个数的最大公约数。算法设计实例1.2例1.2求两个自然数的最大公约数求解
算法设计实例1.2算法1.CommFactor1输入:两个自然数m和n输出:m和n的最大公约数factor=1;循环变量i从2~min(m,n),执行以下操作;
2.1如果i是m和n的公因子,则执行下述操作;
2.1.1factor=factor*i;2.1.2m=m/i;n=n/i;2.2如果i不是m和n的公因子,则i=i+1;3.输出factor;算法设计实例1.2算法1.CommFactor1输入
算法设计实例1.2算法1.编程实现intCommFactor1(intm,intn){inti,factor=1;for(inti=2;i<=m&&i<=n;i++){while(m%i==0&&n%n==0){factor=factor*i;m=m/i;n=n/i;}}returnfactor;}算法设计实例1.2算法1.编程实现intCommF2为什么要学习和研究算法2为什么要学习和研究算法2
算法训练能够提高计算思维能力计算机不够智能,不能主动地分析问题解决问题;需要人的智慧分析问题,形式化地描述问题;采用抽象思维和逻辑思维设计问题解决方案;采用抽象思维和逻辑思维设计问题解决方案;2算法训练能够提高计算思维能力计算机不够智能,不能主动地分2
算法训练能够提高计算思维能力美国计算机协会与美国电气与电子工程师协会(ACM/IEEE-CS)认为计算机专业的基本能力包括:计算思维能力、算法设计与分析能力、程序设计与实现能力、系统能力;计算机求解问题的过程中,最重要的环节就是将人的想法抽象为算法;算法训练像一种思维体操,能够锻炼我们的思维,使思维变得清晰、更有逻辑;2算法训练能够提高计算思维能力美国计算机协会与美国电气与电2
算法研究是推动计算机技术发展的关键检索技术压缩与解压缩信息安全与数据加密2算法研究是推动计算机技术发展的关键检索技术压缩与解压缩信思考如下问题案例一——查找问题思考如下问题案例一——查找问题231333231788131723233313233323178132333231781323233317813172323338案例二——排序问题231333231788131723233313233323voidinsertSort(intr[],intn){ for(i=2;i<=n;i++){r[0]=r[i]; j=i-1; for(j=i-1;r[0]<r[j];j--){r[j+1]=r[j]; j=j-1; } r[j+1]=r[0]; }}案例二——排序问题voidinsertSort(intr[],i案例三——图问题案例三——图问题案例四——组合问题最小乘车费用假设12345678910费用122131404958697990101而任意一辆汽车从不行驶超过10公里。某人想行驶n公里,假设他可以任意次换车,请你帮他找到一种乘车方案,使得总费用最小。案例四——组合问题最小乘车费用案例五——几何问题怎么修围墙满足利用最大化?案例五——几何问题怎么修围墙满足利用最大
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中医耳穴压豆耗材出入库登记制度
- 2026年充电桩场站消防安全管理题库及答案
- 2026年工伤预防与劳动保护员工培训刷题试题及答案
- 2026年个人信息保护员工数据安全培训测试卷及答案
- GBT 48023-2026 数据中心冷板式液冷系统技术规范标准立项发展报告
- 2026新教科版四年级科学上册2.2《认识呼吸器官》课件
- ZD6型电动转辙机工作原理
- 甘肃平凉静宁县城关初级中学2025-2026学年八年级上学期学初测试语文试卷(含答案)
- 《配电柜的安装知识》课件
- 城市公共厕所母婴室专题设计
- 2026年淮北安徽相润投资控股集团有限公司公开社会招聘15名补充考试参考题库及答案详解
- 专升本英语完形填空解题技巧
- 2026年秋季统计学专业开学第一课 专业素养与核心竞争力教学设计
- 高中数学必修一三角函数单元整体教学设计
- 中国ABS塑料行业深度调研及投资前景预测研究报告
- 中国钛合金废料行业市场发展趋势与前景展望战略研究报告
- 建筑施工消防应急演练方案
- 2026上半年湖北省武汉市东湖高新区工程系列专业技术职务水平能力测试(环境保护)自测试题及答案解析
- 2026年ICA对外汉语教师资格证考试笔试试题及答案
- 2026年版关于用好乡镇(街道)履行职责事项清单的具体措施课件
- (2025年)“工人阶级重要论述”及“工会十八大精神”知识竞赛试题附答案
评论
0/150
提交评论