L0808X_算法.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
L0808X_算法

第二章 程序的灵魂-算法 2.1 算法的概念 2.2 简单算法举例 (例2.5素数) 2.3 算法的五个重要特征 2.4 怎样表示一个算法 2.5 结构化程序设计方法 2.1 算法的概念 算法:对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。 2.2 简单算法举例 例2.5 对一个大于或等于3的正整数,判断它是不是一个素数。 算法可以用自然语言表述为 将 n 作为被除数,将2到 (n-1) 各个整数轮流作为除数,如果都不能被整除,则n为素数。 算法细化 S1: 输入n 的值 S2: 2=i (i作为除数) S3: n被i除,得余数r S4: 如果 r = 0,表示n能被i整除,则打印 n“不是素数”,算法结束;否则执行S5 S5: i+1=i S6: 如果i≤n-1,返回S3;否则打印 n “是素数”,然后结束。 算法的改进 实际上,n不必被2到(n-1)的整数除,只需被2到n/2间整数除即可,甚至只需被2到 sqrt(n) 之间的整数除即可。S6步骤可改为: 如果i≤ sqrt(n) ,返回S2;否则算法结束。 2.3 算法的五个重要特征 有穷性 确定性 有零个或多个输入 有一个或多个输出 有效性 2.4 怎样表示一个算法 2.4.1 用自然语言表示算法 2.4.2 用流程图表示算法 2.4.3 三种基本结构的流程图 2.4.4 用N-S图表示算法 2.4.5 用伪代码表示算法 2.4.6 用计算机语言表示算法 2.4.1. 用自然语言表示算法 自然语言是人们在日常生活、工作、学习中通用的语言,一般不需专门的学习和训练就能理解用这种语言所表达的意思。 缺点:灵活性太大,不容易精确叙述,与编程语言差距较大 2.4.5. 用伪代码表示算法 可以用英语、汉语,也可以混用 易看懂,易修改。 对步骤的描述与编程语言差距较小 不限于某种语言,研究算法时常用 2.4.2. 用流程图表示算法 2.4.2. 用流程图表示算法 2.4.4. 用N-S图表示算法 三种基本结构的流程图和N-S图 顺序结构 N-S图 举例 N-S图 举例 例2.12: 将50名学生中成绩高于80分的学号和成绩打印出来。 用N-S图表示。 (图2.31) N-S 图的基本特点 2.5 结构化程序设计方法 1. 自顶向下 将一个复杂问题的解法分解成由若干模块组成的层次结构; 2.5 结构化程序设计方法 2. 逐步细化 将一个模块的功能逐步分解细化为一系列的处理步骤,直到某种程序设计语言的语句或某种机器指令。 4. 结构化编码 基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(goto)。 由三种基本结构反复嵌套构成的程序叫结构化程序 优点:结构清晰,易读,提高程序设计质量和效率(以控制结构为单位,只有一个入口和一个出口,使各单位之间的接口比较简单,每个单位也容易被人们所理解) 例 例6.8 判断 m 是否素数 例6.9. 求100~200的素数. 例 2.4, 2.19, 2.21: 求 1-1/2 + 1/3-1/4 +…+ 1/99-1/100 例 2.4,求1-1/2+1/3-1/4+…+1/99-1/100 S1: 1=sign S2: 1=sum S3: 2=deno S4: (-1)×sign=sign S5: sign×(1/deno)=term S6: sum+term=sum S7: deno+1=deno S8: 若deno≤100 返回 S4;否则算法结束 例 2.19:求1-1/2+1/3-1/4+…+1/99-1/100 伪代码 BEGIN (算法开始) 1= sum 2= deno 1= sign while deno = 100 {(-1)×sign=sign sign×1/deno=term sum+term=sum deno+1=deno } print sum END (算法结束) 例 2.21 :求1-1/2+1/3-1/4+…+1/99-1/100 void main( ) { int sign=1; float deno=2.0, sum=1.0, term; while (deno=100) { sign=-sign; term=sign/deno; sum=sum+term; deno=deno+1; } pr

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档