- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 算 法 学习重点 算法的概念及基本特征。 算法的表示方法。 常用的算法设计方法。 本章内容 5.1 算法的基本概念 5.2 算法的基本特征 5.3 算法设计的要求 5.4 算法的基本结构 5.5 算法的表示 5.6 常用算法设计方法 本章小结 5.1 算法的基本概念 算法(Algorithm) ——问题求解过程的精确描述 。 计算机算法可分为: 数值运算算法(数学模型) 非数值运算算法 算法示例 例5-1 古代有一个国王要奖赏他的臣子,问他要什么,臣子说我的要求不高,8×8的棋盘上第一个格子放1个麦粒,第二个格子放2个麦粒,第三个格子放22个麦粒,……,第64个格子上放263个麦粒。 数值运算算法 例5-1 算法示例 例5-2 高校录取新生时,按招生计划人数和当年学生的高考总分划定分数线,然后进行投档。 非数值运算算法 例5-2 第一步: 将所有报考该校的考生排序,且计算出省控线以上的考生数。 5.2 算法的基本特征 1.有穷性 2.确定性 3.可行性 4.输入 5.输出 5.3 算法设计的要求 1.正确性 2.可读性 3.健壮性 4.执行时间与低存储量需求 5.4 算法的基本结构 1.顺序结构 2.选择结构 3.循环结构 5.5 算法的表示 表示方法: 自然语言 伪代码 传统流程图 N-S结构化流程图 5.5.1 用自然语言描述算法 自然语言——日常使用的语言 优点:通俗易懂 缺点:极易产生歧义,表述不够严格 算法举例:例5-3 例5-4 例5-5 例5-3 问题描述:产生两个1~100的随机整数s1和s2,求两数之和。 算法描述: 步骤1:使用公式Int(Rnd*100+1)生成第一个随机数,放入变量s1中。 步骤2:使用公式Int(Rnd*100+1)生成第二个随机数,放入变量s2中。 步骤3:求解s1+s2的结果,并将结果显示出来。 例5-4 问题描述:根据用户在文本框Text1中输入的x,求 ,在文本框Text2中显示结果。 例5-5 问题描述:求解 1+2+3+4+5。 算法描述: 步骤1:求解1+2,将结果3放入变量sum中,即1+2?sum。 步骤2:将sum中的值和3相加,将结果还放入变量sum中,即sum+3?sum。 步骤3:将sum中的值和4相加,将结果还放入变量sum中,即sum+4?sum。 步骤4:将sum中的值和5相加,将结果还放入变量sum中,即sum+5?sum。 步骤5:输出sum的值。 例5-5 问题描述:求解1+2+3+…+100 算法描述: 步骤1:给变量i赋值为1,变量sum赋值为0。 步骤2:将sum中的值和i的值相加,结果还放入变量sum中,即sum+i?sum。 步骤3:将i的值增加1,即i+1?i。 步骤4:若i的值不大于100,则转步骤2执行;否则转步骤5。 步骤5:输出sum的值。 5.5.2 伪代码表示 伪代码——一种使用代码和自然语言相结合的代码 。 算法举例:例5-6 例5-7 例5-8 例5-6 问题描述:产生两个1~100的随机整数s1和s2,求两数之和。 算法描述: s1=第一个随机数Rnd*100+1 ; s2=第二个随机数 Rnd*100+1 ; 输出s1+s2 ; 例5-7 问题描述:根据用户在文本框Text1中输入的x,求 ,在文本框Text2中显示结果。 例5-8 问题描述:求解1+2+3+…+100 算法描述: i=1 ; sum=0 ; do sum=sum+i ; i=i+1 ; while i不大于100 ; 输出sum ; 5.5.3 流程图表示 使用图描述信息 常用流程图 1.传统流程图 2.N-S流程图 1.传统流程图 一些常用的流程图符号 1.传统流程图 流程图示例 1.传统流程图 算法举例:例5-9 例5-10 例5-11 2.N-S流程图 N-S流程图规定了三种基本结构的画法 2.N-S流程图 算法举例:例5-12 例5-13 例5-14 5.6 常用算法设计方法 5.6.1 穷举搜索法 5.6.2 递推法 5.6.3 回溯法 5.6.4 分治法 5.6.1 穷举搜索法 穷举搜索法的基本思想是根据提出的问题,列举所有可能的情况,并用问题中给定的条件检验哪些是需要的,哪些是不需要的。 穷举搜索法常用于解决“是否存在”、“有多少种可能”等类型的问题。 算法举例 例5-15
您可能关注的文档
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第1章 概述.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第2章 窗体.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第3章 基本控件.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第4章 Visual Basic程序设计基础.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第5章 基本控制语句.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第6章 程序设计基本算法.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第7章 高级数据类型.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第8章 过程.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第9章 文件.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第10章 高级控件.ppt
- 数据仓库:Redshift:Redshift与BI工具集成.docx
- 数据仓库:Redshift:数据仓库原理与设计.docx
- 数据仓库:Snowflake:数据仓库成本控制与Snowflake定价策略.docx
- 大数据基础:大数据概述:大数据处理框架MapReduce.docx
- 实时计算:GoogleDataflow服务架构解析.docx
- 分布式存储系统:HDFS与MapReduce集成教程.docx
- 实时计算:Azure Stream Analytics:数据流窗口与聚合操作.docx
- 实时计算:Kafka Streams:Kafka Streams架构与原理.docx
- 实时计算:Kafka Streams:Kafka Streams连接器开发与使用.docx
- 数据仓库:BigQuery:BigQuery数据分区与索引优化.docx
文档评论(0)