第算法与数据结构基础分析.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文档。上传文档
查看更多
1-* 数据的逻辑结构 数据的存储结构 数据的运算:检索、排序、插入、删除、修改等 线性结构 非线性结构 顺序存储 链式存储 线性表 栈 队 树形结构 图形结构 数据类型:是一个值的集合和定义在这个值集上一组操作总称。 分类:(按值的不同特性) 原子类型 :每一个对象仅由单值构成的类型 ; 结构类型 :每一个对象可由若干成分按某种结构   构成的类型。 1-* 抽象数据类型 ADT(Abstract Data Type) 作用:抽象数据类型可以使我们更容易描述实际问题。 例:用线性表描述学生成绩表,用树或图描述遗传关系。 定义:一个数学模型以及定义在该模型上的一组操作。 好处:可提高软件的复用程度。使用它的人可以只关心它的逻辑特征,不需要了解它的存储方式。定义它的人同样不必要关心它如何存储。 1-* 例:线性表这样的抽象数据类型,其数学模型是:数据元素的集合,该集合内的元素有这样的关系:除第一个和最后一个外,每个元素有唯一的前趋和唯一的后继。可以有这样一些操作:插入一个元素、删除一个元素等。 1-* 原子类型 值不可分解,如int 固定聚合 类型 值由确定数目的成分按某种结构组成,如复数 可变聚合 类型 值的成分数目不确定,如学生基本情况 抽象数据类型分类 表示方法: 三元组表示:(D,S,P) 其中:D是数据对象,S是D上的关系集,P是对D的基本操作集。 标准定义格式: ADT 抽象数据类型名{ 数据对象:数据对象的定义 数据关系:数据关系的定义 基本操作:基本操作的定义 }ADT 抽象数据类型名 1-* 1-* 名称 线性表 解释 数据对象 D={ai| ai(-ElemSet,i=1,2,...,n,n=0} 任意数据元素的集合 数据关系 R1={ai-1,ai| ai-1,ai(- D,i=2,...,n} 除第一个和最后一个外,每个元素有唯一的直接前趋和唯一的直接后继 基本操作 ListInsert(L,i,e) L为线性表,i为位置,e为数据元素。 ListDelete(L,i,e) ... 算法的概念 建立在数据结构基础上的、求解问题的一系列确切的步骤。 算法常常含有重复的步骤和一些比较或逻辑判断。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。 算法和程序的关系  两者相似而又有区别。程序不一定满足有穷性(死循环);程序中的指令必须是机器可执行的,而算法中的指令则无此限制。一个算法若用计算机语言来书写,则它就可以是一个程序。 1-* 算法在中国古代文献中称为“术” 《九章算术》,给出最大公约数、最小公倍数、线性方程组求解等算法 三国的刘徽给出求圆周率的算法:刘徽割圆术。 杨辉算法等 算法的英文名称“Algorithm” 来自于9世纪波斯数学家花拉子米(al-Khwarizmi) al-Khwarizmi—algorism — algorithm 欧几里得算法被人们认为是史上第一个算法。 1-* D. Knuth在The Art of Computer Programming里总结的算法特征: 输入:一个算法必须有零个或以上输入量。 输出:一个算法应有一个或以上输出量,输出量是算法计算的结果。 明确性:算法的描述必须无歧义,以保证算法的实际执行结果是精确地符合要求或期望,通常要求实际运行结果是确定的。 有限性:依据图灵的定义,一个算法是能够被任何图灵完备系统模拟的一串运算,而图灵机只有有限个状态、有限个输入符号和有限个转移函数(指令)。而一些定义更规定算法必须在有限个步骤内完成任务。 有效性:又称可行性。能够实现,算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现。 1-* 正确性(Correctness) 算法应满足具体问题的需求 对于典型的、苛刻而带有刁难性的一组有效输入得到正确的结果 可读性(Readability) 算法应该好读。以有利于阅读者对程序的理解。 健壮性(Robustness) 算法应具有容错处理。当输入非法数据时,算法应对其作出反应,而不是产生莫名其妙或随机的输出结果。 高效性(Efficiency) 效率指的是算法执行时间。对于解决同一问题的多个算法,执行时间短的算法效率高。 存储量需求指算法执行过程中所需要的最大存储空间。 时间复杂度和空间复杂度都与问题的规模有关。 1-* 利用计算机内部的计时功能 double start, stop; time (start); main process(n, …); time (stop); double runTime = stop -start; printf (%d%

文档评论(0)

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

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

1亿VIP精品文档

相关文档