- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章学科中的核心概念2015
课堂测验: 将下列树转换为二叉树,并画出对应的二叉链表。 A C B D G F E 作业:P139-140 4.1,4.5(用流程图) 第4章 计算学科中的核心概念 内容提要 算法 数据结构 学科中的核心概念 核心概念 具有普遍性、持久性的重要思想、原则和方法。 认知学科是通过概念来实现的,掌握和应用学科中的核心概念是学习的基本要求。 基本特征 在学科中多次出现; 在各分支领域及抽象、理论和设计的各个层面上都有很多示例; 在技术上有高度的独立性; 一般都在数学、科学和工程中出现。 核心概念和基本特征 计算学科中的核心概念 算法 (Algorithm) 数据结构 (Data Structure) 程序 (Program = 算法 + 数据结构) 软件(Software= 程序 + 文档) 硬件 (Hardware 物理器件、部件和设备) 本章介绍计算学科中一个最具方法论性质的核心概念——算法和重要的核心概念——数据结构,包括算法的定义、表示方法、算法分析,数据结构的存储和表示。 算法是计算学科中最具方法论性质的核心概念,对算法进行研究能使我们深刻地理解问题的本质以及可能的求解技术。 算法的定义:求解问题的方法 非形式定义 形式化定义 算法的重要特征 有穷性、确定性、输入、输出、能行性 算法的表示方法 自然语言、流程图、伪代码、程序设计语言 算法分析 时间复杂度、空间复杂度、可读性 复杂度: 6级,用字母“O”表示,时空可转换 1、算 法 非形式定义:一个算法就是有穷规则的集合,其中之规则规定了一个解决某一特定类型问题的运算序列。 算法的重要特征 有穷性:在执行有穷步之后必须结束。它所包含的计算步骤是有限的。 确定性:算法的每一个步骤必须要确切地定义。即算法中所有有待执行的动作必须严格而不含混地进行规定,不能有歧义性。 输入:算法有零个或多个的输入。 输出:算法有一个或多个的输出。 能行性:算法中有待执行的运算和操作必须是基本的,是能够精确地进行的。 1.1 算法的定义和特征 算法的形式化定义 算法是一个四元组(Q,I,Ω,F),其中: (1)Q是一个包含子集 I 和 Ω 的集合,它表示计算的状态; (2)I 表示计算的输入集合; (3)Ω表示计算的输出集合; (4)F表示计算的规则,它是一个由Q到它自身的函数,且具有自反性,即对于任何一个元素q∈Q,有F(q)=q。 对于所有的输入元素X,一个算法都在有穷步骤内终止。对于任何一个元素X∈I,x均满足以下性质: X0=X,Xk+1=F(Xk),(k≥0) 该性质表示输入元素x为一个计算序列:X0,X1,X2,…,Xk。对任何输入元素X,该序列表示算法在第k步结束。 例 求解调和级数Hn:Hn=1+1/2+1/3+…+1/n 设变量X表示累加和,变量I表示循环的次数,自然语言描述算法如下: (1)将0赋值给X; (2)将1赋值给I; (3)将X与1/I相加,然后把结果存入X; (4)将I加1; (5)若I大于等于N,算法结束,结果为X;否则转到步骤(3)继续执行。 1.2 算法实例 算法是对解题过程的精确描述,这种描述是建立在语言基础之上的,表示算法的语言主要有自然语言、流程图、伪代码、计算机程序设计语言等。 自然语言 自然语言是人们日常所用的语言,如汉语、英语等。使用自然语言描述的算法通俗易懂。 使用自然语言描述算法的缺点: 由于自然语言的歧义性,容易导致算法执行的不确定性; 用自然语言描述的算法冗长; 很难清晰地表示多重循环和分支; 自然语言表示的算法不便翻译成程序设计语言。 1.3 算法的表示方法 流程图 流程图是描述算法的常用工具。就描述功能而言,流程图优于其他描述算法的语言。 采用美国国家标准化协会ANSI规定的一组图形符号来表示算法。 可以很方便地描述顺序、选择和循环结构,而任何程序的逻辑结构都可以用顺序、选择和循环结构来表示。 用流程图表示的算法不依赖于任何具体的计算机和程序设计语言,从而有利于不同环境的程序设计。 伪代码 伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。它不用图形符号,书写方便,格式紧凑,易于理解,便于向程序过渡。 流程图示例 程序设计语言 计算机并不能识别自然语言、流程图和伪代码等算法描述的语言。 程序设计语言描述的算法(程序)是清晰的、简明的,最终也能由计算机处理的。 使用程序设计语言描述算法的缺点: 算法的基本逻辑流程难于遵循。与自然语言一样,程序设计语言也是基于串行的,当算法的逻辑流程较为复杂时,这个问题就变得更加严重; 用特定程序设计语言编写的算法限制了与他人的交流,不利于问题的解决。 要
文档评论(0)