第二章 算法概述(上)PPT.pptxVIP

  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文档。上传文档
查看更多
第二章 算法概述(上)PPT

第二章 算法概述第二章 算法概述(上)2.1 计算机程序与算法2.2 算法的描述2.3 常用算法简介2.1 计算机程序与算法以上这三个“算法”(行动顺序)中,甲显然是可行的,但由于乙在烧早饭的同时进行洗漱,减少了等待时间,所以效率更高,而且在吃完早餐后再换正装出门似乎更合理。对于丙来说,显然不符合生活常识,实际不可行。1. 算法(algorithm)是指解决一个问题所采取的策略和过程。这个过程包括了具体的操作处理顺序。从“计算”的角度看,算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤。 【例2-1-1】一个起床-上班的“算法”甲的“算法”为:?起床?整理床被?洗漱?换衣服?烧早饭?吃早餐?出门上班;乙的“算法”为:?起床?整理床被?烧早饭?洗漱?吃早餐?换衣服?出门上班;丙的“算法”为:?起床?整理床被?吃早餐?洗漱?烧早饭?换衣服?出门上班。 计算机程序与算法计算机算法当然是指在计算机上进行数据处理和问题求解的方法和策略,但与上面的例子有着相同的性质。计算机算法是以一步接一步的方式来详细描述如何将输入数据(或问题)转化为所要求输出的过程。或者说,算法是对计算机上执行的计算过程的具体描述。计算机算法是程序的灵魂。先有算法,再有程序。实例:看商品猜价格 首先出示一件价格在999元以内的商品,参与者要猜出这件商品的价格。在猜价格的过程中,主持人会根据参与者给出的价格,相应地给出“高了”或“低了”的提示。算法策略:选择价格区间的中间值为所猜值程序的开发过程数据类型分析问题分析算法设计编写程序测试程序2. 算法是从数学上的演算法发展而来的。我国古代就有称为“术”的算法,最早出现在《周髀算经》和《九章算术》中。此后,闻名于世的又有魏晋时代的刘徽割圆术 (求圆周率算法)以及唐代著名的《杨辉算法》等。算法的英文名称“Algorithm”来自于9世纪波斯数学家花拉子米(比阿勒·霍瓦里松,波斯语:??????? ?,拉丁转写:al-Khwarizmi)。因为比阿勒·霍瓦里松在其影响深远的著作《代数对话录》中提出了算法这个概念。“al-Khwarizmi”意思就是“花拉子米”的运算法则。欧几里得算法被人们认为是史上第一个算法。20世纪英国科学家图灵提出了著名的图灵论题,并提出一种假想的计算机的抽象模型,这个模型被称为图灵机。图灵机的出现对算法的发展起起到了重要的作用。满足这四个条件才能称之为算法。此外要考虑输入/输出。 3. 算法的基本性质算法首先应该是正确的。即对于任意的一组输入(包括合理的输入与不合理的输入),总能得到预期的输出。正确性算法的每一步都能够被计算机理解和执行,而不是抽象和模糊的概念。(大概,近似,比较小等)可行性算法每个步骤都有确定的执行顺序,每一步是什么,都必须明确,无二义性。 确定性无论算法有多么复杂,都必须在有限步之后结束。有限性一个良好的算法不仅能够对合理的输入数据进行处理,输出正确结果,对输入的非法数据也应该能作出恰当反应或进行相应处理。这又称为算法的“健壮性”。4. 算法的评价通常解决问题的途径并不是唯一的,计算机解决一个问题的算法同样不是唯一的,恰恰相反,很多步骤和思路完全不同的算法可以解决相同的问题。评判一个算法的优劣可从算法执行时间(常用核心语句执行次数与问题规模n的函数关系度量)和需占用的额外空间两方面考虑。称为时间复杂度和空间复杂度。(有关算法性能分析将在第七章中具体讨论。)2.2 算法的描述算法的描述有多种方式,可以用流程图、伪代码等,甚至用人们日常所用的语言,如汉语、英语、德语等自然语言描述。1. 用自然语言或伪代码描述算法 自然语言不用专门训练,所描述的算法也通俗易懂。但由于需要根据算法编制程序,所以直接使用自然语言描述算法不够简单明了,与程序设计的关系也不够密切。 所谓伪代码就是用简明扼要的文字以及类似数学上的表达式,按类似程序的格式写出的算法。其并不能在编译器上通过编译(或解释)生成运行程序,但又与程序比较接近,比较容易按此思路编写出实际程序。 用伪代码书写的算法虽无严格的语法规则,但要求清晰易读。介于自然语言与程序设计语言中间。简单算法举例(伪代码形式)【例2-2-1】 温度转换问题分析: 预报摄氏温度, 想知道对应华氏温度。解决方法: 输入摄氏温度, 显示输出华氏温度。两者对应关系是F=(9/5)C+32。算法设计(伪代码写的算法):输入:摄氏温度celsius计算:华氏温度fahrenheit=(9/5)* celsius + 32输出:显示fahrenheit简单算法举例讨论(温度转换):考虑程序的健壮性,要求能够判断输入的数据是否合理,并能剔除不合理数据。所以算法中需要在输入数据后,进行数据的合法性判断及处理。改进算法:输入:摄氏温度celsius判断:输入的

文档评论(0)

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

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

1亿VIP精品文档

相关文档