网站大量收购独家精品文档,联系QQ:2885784924

6数据的组织结构与算法1.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6数据的组织结构与算法1.ppt

◇集合:数据元素间除了“同属于一个集合”外,别无其它关系。 ◇线性结构:数据元素间存在一个对一个的关系。 ◇树形结构:数据元素间存在一个对多个的关系。 ◇图或网状结构:数据元素间存在多个对多个的关系。 6.2.3 图结构 图(Graph)是由非空的顶点集合和一个描述顶点之间关系――边(或者弧)的集合组成。 其形式化定义为:G=(V,E) V={vi| vi∈dataobject} E={( vi,vj)| vi, vj ∈V ∧P(vi, vj)} 其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合,集合E中P(vi,vj)表示顶点vi和顶点vj之间有一条直接连线,即偶对(vi,vj)表示一条边。 6.2.3 图结构 下图(无向图G1)给出了一个图的示例,在该图中: 集合V={v1,v2,v3,v4}; 集合E={(v1,v3),(v1,v4),(v2,v3),(v2,v4),(V3,V4)} 算法的五个特性 (1)有穷性:对任何合法的输入值,一个算法必须总是在执行有穷步之后结束,且每一步都可在有穷时间内完成; (2)确定性:算法中每一条指令必须有确切的含义,不会产生二义性,对于相同的输入只能得出相同的输出。 (3)可行性:即算法中描述的操作都可以通过已经实现的基本运算执行有限次来实现的。 (4)输入:一个算法有0个或多个输入,这些输入取自于某个特定的数据对象的集合,它可以使用输入语句从外部提供,也可以在算法内通过赋初值给定。 (5)输出:一个算法有一个或多个的输出,这些输出是同输入有着某些特定关系的量。 算法的正确性 所谓算法的正确性,也称可靠性或有效性,是指: 程序不含语法错误。 程序对于几组输入的数据能够得出满足规格说明要求的结果。 程序对于精心选择的典型、苛刻而带有刁难性的几组输入数据能够得出满足规格说明要求的结果。 程序对于一切合法的输入数据都能产生满足规格说明要求的结果。 在算法是正确的前提下,算法的可读性是摆在第一位的。可读性好有助于人们对算法的理解,难懂的程序易隐藏较多错误,难以调试和修改。 算法的效率指的是算法执行时计算机资源的消耗,它包括运行时间代价和存储空间代价。 算法的健壮性指的是,算法应对非法输入的数据做出恰当反映或进行相应处理。它强调的是,如果输入非法数据时,算法应能加以识别并做出处理,而不是产生误动作或陷入瘫痪。 2.流程图 流程图是描述算法的常用工具。它采用美国国家标准化协会ANSI(American National Standard Institute)规定的一组图形符号来表示算法 4.计算机程序设计语言 一般而言,计算机程序设计语言描述的算法是清晰的、简明的,最终也能由计算机处理的,然而也不是完善无缺。它需要设计者用特定程序设计语言编写的算法,限制了与他人的交流;容易陷入描述计算步骤的细节而忽视算法的本质。 三种基本结构的图示: 顺序程序设计 分支结构 循环结构 2.结构化程序设计方法 结构化程序设计方法主要包括程序结构的自顶向下和模块化设计方法。 算法的复杂性是算法运行所需要的计算机资源的量。算法的复杂性是算法效率的度量,是评价算法优劣的重要依据。 算法的复杂性有时间复杂性和空间复杂性之分。 需要的时间资源的量,即算法的运行速度,称作时间复杂性。 需要的空间(即存储器)资源的量称作空间复杂性。 6.3.3 算法复杂性 1.自然语言 自然语言是人们日常所用的语言,如汉语、英语、德语等。 例如,求3个数中最大者的问题,可以描述为: ① 比较前两个数。 ② 将①中较大的数与第三个数进行比较。 ③ 步骤②中较大的数即为所求。 6.3.4 算法的表示 起止框 判断框 处理框 输入/输出框 注释框 流向线 连接点 3.伪代码 伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法的工具。它不用图形符号,因此书写方便格式紧凑,易于理解,便于向计算机程序设计语言过渡。 例:求两个数的较大者,用伪代码描述算法如下: Find the bigger Input: two number s:a,b 1. if (the first number a is greater than or equal to the second number b) then 1.1 return a else 1.2 return b end if end 6.4 程序设计方法 6.4.1 计算机程序的性质 计算机程序包含两方面的内容: 对象及对象之间关系(数据结构); 描述

文档评论(0)

mwap + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档