- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 计算机软件 3.4 算法和数据结构 算法与程序 软件的主体是程序,程序的核心是算法 要使计算机解决某个问题,首先针对问题设计一个解题步骤,然后在根据解题步骤编写程序并交给计算机执行。 这个“解题步骤”就是算法。 算法与程序 算法(Algorithm):问题求解规则的一种过程描述。 在算法中要精确定义一系列规则,这些规则指定了相应的操作顺序,目标是在有限的步骤内得到所求问题的解答。 算法设计方法:由粗到细,由抽象到具体的逐步求精方法 程序:对解题对象和解题步骤用程序语言进行的一种描述。 程序中用具有一定结构的变量来表示问题的对象 用函数和语句来实现解题的操作 “算法”和“数据结构”是编写程序所要首先考虑的两个重要方面。 3.4.1 算法 计算机求解问题的步骤 (1) 确定并理解问题; (2) 寻找解决问题的方法与步骤,并将其表示成算法(Algorithm) ; (3) 使用某种程序设计语言描述该算法(编程), 并进行调试; (4) 运行程序,获得问题的解答; (5) 进行评估,改进算法和程序 算法是解决问题的方法与步骤 例:有三个硬币,其中一个是伪造的,另两个是真的,伪币与真币重量略有不同。现在提供一座天平,如何找出伪币呢? 分析: 方法明确而有序 按提供的条件进行操作 任何人均可仿照进行(共享智能) 关于算法的三方面问题 如何确定算法(算法设计)? 如何表示算法(算法表示)? 如何使算法更有效(算法分析)? 2.算法设计举例 例如,要对包含n个整数元素的数组A按元素值由小到大排序。 第1遍,给出粗略的思路: ① 从所有整数中选一个最小的,作为已排好序的第一个数; ② 在剩下的未排序整数中选出最小的,放在已排好序列的最后一个数后面; ③ 反复执行②,直到所有整数都放到已排好的序列中。 第2遍,细化,考虑“序列存放在何处” ,如何“反复执行”等。用“伪代码” 描述为: for i=1 to n {选出A[i]到A[n]中最小的元素,设为A[j]; 交换A[i]和[j]; } 筛选法排序 筛选法排序 筛选法排序 筛选法排序 算法设计举例 第3遍,具体给出如何选最小的元素,交换元素等,整合算法。 第4遍,选择程序语言编程,如用C语言编写的函数模块sort如下: 算法 什么是算法 算法的基本性质 确定性:算法中的每一步运算必须有确切的定义,无二义性。 有穷性: (可终结性)一个算法总是在执行了有穷步运算后终止 能行性:算法中有待实现的运算都是基本的、能精确进行的, 且能在有限的时间内完成。 输入:具有0个或多个输入量。 输出:至少产生一个输出(包括参量状态的变化) 算法与程序的区别 终止性区别: 一个程序不一定满足有穷性。例如一个操作系统程序。 能行性区别: 程序中的指令必须是具体机器可执行的,所有细节必须精确描述; 对算法中的运算语句无此限制。可略过可实现的细节,采用“伪代码”、流程图等方式来描述算法。 3. 算法的表示 算法的表示方法 文字说明 流程图表示 用N-S盒图表示算法 用PAD图描述算法 伪代码(一种介于自然语言和程序设计语言之间的文字和符号表达工具) 自然语言描述 “比较A与B的重量,若A=B,则C是伪造的;否则再比较A与C的重量,若A=C,则B是伪造的;否则A是伪造的。” 缺点: 容易产生歧义,很难 “精确”地进行表达 叙述冗长,很难清楚地表达算法的逻辑流程 算法的流程图表示 流程图由结点和有向边构成,它描述了算法所执行操作的顺序及执行操作的条件 流程图符号 : 求最大公约数的伪代码表示 4. 算法的分析 算法分析的基本内容 正确性:给定有效输入后,经过有限时间的计算,产生正确的输出结果 简单性 算法是否容易理解,是否容易验证其正确性,程序是否容易调试 简单的算法效率不一定高,要在保证一定效率的前提下力求算法简 两个度量特性 执行算法所要占用的计算机资源的多少,主要有时间复杂度和空间复杂度两个方面。 时间复杂性(Time Complexity) : 当问题的规模n充分大时,运行该算法所需要的时间的数量级表示 T(n) 空间复杂性(Space Complexity) : 除原始数据之外,额外占用的存储空间的大小g(n) 算法分析 对一个正确的算法,分析其好坏时,应考虑以下因素: 算法是否易理解,是否易调试和易测试等 执行算法所要占用的计算机资源的多少,主要有时间复杂度和空间复杂度两个方面。 两个度量特性 当问题的规模以某种单位由1增至n时 时间代价:解决该问题的算法运行所耗费的时间,以某种单位由T(1)增至T(n),则称该算法的时间代价
您可能关注的文档
- EPOQUE检索系统中WPI数据库专利编号及文献种类代码.doc
- ETL认证资料.doc
- Etuvokg医学图像处理技术.doc
- Excel字符串截取函数与数字处理函数.doc
- Flash ActionScript 3.0 语言和组件参考Array.doc
- FntcyhOracle DBA (OCP认证专家).doc
- FOR循环语句的翻译程序设计(递归下降法、输出三地址表示.doc
- FusionChartsV3.1中文说明书,帮助.doc
- FX2N基本指令自学.doc
- GA可靠度验证程序管理办法.doc
- 2026年高考思想政治一轮总复习考点小测卷(四)只有坚持和发展中国特色社会主义才能实现中华民族伟大复兴.doc
- 2026年高考思想政治一轮总复习12大重点任务群(一)中国特色社会主义课时1 人类社会的发展进程及演进规律任务二科学社会主义的理论与实践.doc
- 2026年高考思想政治一轮总复习12大重点任务群(八)认识社会与价值选择课时2社会历史观与人生价值观任务一寻觅社会的真谛.doc
- 2026年高考思想政治一轮总复习考点小测卷(九)历史和人民的选择.doc
- 2026年高考思想政治一轮总复习考点小测卷(五十八)创新思维要善于联想.doc
- 2026年高考思想政治一轮总复习考点小测卷(四十五)自主创业与诚信经营.doc
- 2026年高考思想政治一轮总复习12大重点任务群(二)我国的基本经济制度课时2我国的社会主义市场经济体制任务二更好发挥政府作用.doc
- 2026年高考思想政治一轮总复习12大重点任务群(一)中国特色社会主义课时2中国社会主义的发展历程任务二只有中国特色社会主义才能发展中国.doc
- 2026年高考思想政治一轮总复习阶段综合检测卷(十)各具特色的国家.doc
- 2026年高考思想政治一轮总复习阶段综合检测卷(八)认识社会与价值选择.doc
最近下载
- 第六章煤层气钻井完井工艺技术.ppt VIP
- WI-PM-004ALL100烧录器操作规范.doc VIP
- 2025年国企审计部内部招聘试题.pdf VIP
- 文稿传输otn原理及设备介绍.pptx VIP
- BS EN 50600-2-2-2019 信息技术.数据中心设施和基础设施.第2-2部分:供电和配电.pdf VIP
- 中医护理方案2017解读.pptx VIP
- 标准图集-08CJ17快速软帘卷门 透明分节门 滑升门 卷帘门.pdf VIP
- 驭胜s350及电路图n351第三阶段2013-11-13分动器.pdf VIP
- 2025年安全生产考试题库(林业行业安全规范)试题集.docx VIP
- 检验科质量与安全管理制度培训学习资料.pptx VIP
文档评论(0)