- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
辗转相减法 辗转相除法,举例:27和21 的最大公约数。 两数乘积除以最大公约数,结果就是最小公倍数。 * 以整数25举例 * 程序的灵魂 ——算法 第二章 程序: 用于描述完成某项功能所涉及的 对象和动作 规则。 国歌、首长、名单、代表、话、奖以及菜、锅、油、水、酱油、味精等 奏、颁、讲、宣布、放菜、出锅 动作的先后顺序以及它们能作用的对象,要遵守一定的规则。 计算机程序: 用于描述计算机完成某项功能所涉及的 对象和动作 规则。 再如:做某个菜的程序 洗莱 ; 准备配料 ; 加热锅 ; 锅热后加油 ; 做菜的程序 ; 油热至八成,放入葱、姜、蒜和调料 略炒后,加入菜煸炒 ; 加入些许水 ; 菜八成熟时,加入酱油、味精 ; 出锅,并装盘 ; 数据结构与算法 在程序设计的初期要把精力集中在问题求解的思路上,暂不考虑程序描述的细节。 组织求解对象 制定求解过程的操作步骤和规则 数据结构 算法 数据结构:(data structure) 描述了问题涉及对象间的联系和组织结构。 指定数据的类型和数据的组织形式。 算法:(algorithm) 描述了求解问题的步骤或规则。 沃思: 数据结构 + 算法 = 程序 程序设计的关键是构造程序的数据结构并描述问题所需要的、施加在这些数据结构上的算法。 算法 概念:为解决一个问题而采取的方法和步骤。 --同一个问题可以有多种不同的算法 --算法也有优劣 分类:计算机算法可分为两大类:数值运算 算法和 非数值运算 算法 设计原则: 1. 保证正确 2. 考虑质量 简单算法举例 例一:求1×2×3×4×5的值 最原始的方法: 1×2 →p p×3 →p p×4 →p p×5 →p 正确! But 繁琐! 且不具有通用性! 改进一下! 我发出简单的循环命令, 它重复作同样的事情, 数百成千次, 却只在一瞬间, 有了结果! P?1 i? 2 P? P × i i?i+1 若i≤5则重复3、4、5各步;否则计算结束。最后的P值就是5!。 输出s 本算法可推广到求 N! 计算机的拿手好戏: 存储容量大 运算速度快 循环 ★★★ 设计具有通用性的循环算法! 例二:求正整数n,m的最大公约数 根据若两数能分别被q整除,则其差也定能被q整除。 输入n,m的值 若nm,则 n ? n-m 若mn,则 m ? m-n 若n=m,则计算结束,输出n。否则,重复1、2、3各步。 动动脑筋, 改进一下算法! 闰年的条件: 1.能被4整除,但不能被100整除。 2.能被400整除。 整数 4 例三:判断某一年是否为闰年 1.输入年份y 2.若y能被400整除,输出y“是闰年”。 3.否则, 若能被4整除,但不能被100整除, 输出y“是闰年”。 4. 否则,输出y“不是闰年”。 100 400 例四:判断一个数是否为素数 素数: 除了1和该数本身之外,不能其它整数整除。 1. 输入n 2. i=2 3. n被i除,得余数r 4. 如果r=0,打印“n不是素数”,算法结束。 5. i+1=i 6. 如果i≤n-1,重复3、4、5步, 否则,打印“n是素数”,算法结束。 改进算法效率 算法的特性 有穷性: 有限的操作步骤, 在合理的时间内完成。 确定性:每一步必须是确定的, 不能“模棱两可”。 有效性:每一步应当有效执行, 并产生有效和确定的结果。 有零个或多个输入 有一个或多个输出 怎样表示一个算法 1. 用自然语言表示 2. 用流程图表示 3. N-S图 4. 用伪代码表示算法 (1)流程图 起止框 输入输出框 判断框 处理框 流程线 连接点 开始 输入a、b ab max=a max=b 输出max 结束 求两数最大值的流程图 开始 0→s 1→i s+a→s i+1→i i≤5 是 否 结束 输入第i个数给a 打印s 输入5个数求和的流程图 三种基本流程结构 顺序结构 A B P A B 不成立 成立 选择结构 循环结构 P 不成立 A 成立 P 成立 A 不成立 当型(while)循环结构 直到型(until)循环结构 三种基本程序结构: 顺序结构、选择结构、循环结构 已经证明,由以上三种基本结构顺序组成的算法结构,可以解决任何复杂的问题
原创力文档


文档评论(0)