实用数据结构第一节绪论.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.1 何谓数据结构 1.2 算法与伪码(简) 1.3 程序结构化与设计风格(略) 1.4 程序分析的方法 1.5 时间复杂度分析 1.6 渐近式表示法(只讲大O表示法) 1.7 递归式的复杂度计算(略) 1.1 数据结构基本概念 Q1 什么是数据结构? Q2 学习数据结构有什么用? Q3 数据结构涵盖的主要内容? Q1:什么是数据结构? 答: 是相互之间存在一种或多种特定关系的数据元素的集合,表示为: 术语:数据、数据元素和数据项 数据(data)——所有能被计算机识别、存储和处理的符号的集合(包括数字、字符、声音、图像等信息 )。 数据元素(data element)——是数据的基本单位,具有完整确定的实际意义(又称元素、结点,顶点、记录等)。 数据项(Data item)——构成数据元素的项目。是具有独立含义的最小标识单位(又称字段、域、属性 等)。 Q2:学习数据结构有什么用? 答:计算机内的数值运算依靠方程式,而非数值运算(如表、树、图等)则要依靠数据结构。 这是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等等的学科。 Q3:数据结构涵盖的内容? 解释1: 什么叫数据的逻辑结构? 答:指数据元素之间的逻辑关系。即从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。逻辑结构可细分为4类: 例:用图形表示下列数据结构,并指出它们是属于线性结构还是非线性结构。 (1) S=(D, R) D={ a, b, c, d, e, f } R={(a,e), (b,c), (c,a), (e,f), (f,d)} (2) S=(D, R) D={di | 1≤i≤5} R={(di , dj ), ij} d1 d5 d2 d4 d3 解释2:什么叫数据的物理结构? 答:物理结构亦称存储结构,是数据的逻辑结构在计算机存储器内的表示(或映像)。它依赖于计算机。 解释3:什么是数据的运算? 答:在数据的逻辑结构上定义的操作算法。 它在数据的存储结构上实现。 1.2 算法与伪码 Q1. 什么是算法? Q2. 算法的表示方式有哪些? 程序设计实质=好算法+好结构 答:算法是解决某一特定类型问题的有限运算序列。是一系列输入转换为输出的计算步骤。 算法的特性: 有穷性:按照算法所描述的步骤执行,在有限的步骤内,一定会结束。 确定性:每一个步骤的语句必须很明确。 可行性:算法中的每一个步骤必须是可执行的基本指令。 (即使是用纸笔也能完成的计算) 输入:一个算法有零个或多个输入数据。 输出:一个算法有一个或多个输出数据。 1 条列式的步骤 2 流程图 3 伪码 4 程序语句 条列式:以条列式的步骤来描述解决问题的方法。 1.4 程序分析的方法 算法效率的分析——用依据该算法编制的程序在计算机上执行所消耗的时间来度量。 利用计算机内记时功能,不同算法的程序可以用一组或多组相同的统计数据区分 缺点: ?必须先运行依据算法编制的程序 ?所得时间统计量依赖于硬件、软件等环境因素,掩盖算法本身的优劣 讨论:那如何进行事前分析? 1.5 时间复杂度分析 渐进符号(O)的定义:当且仅当存在一个正的常数 C,使得对所有的 n ? n0 ,有 f(n) ? Cg(n),则 f(n) = O(g(n)) 3n+2=O(n) /* 3n+2?4n 当 n?2 */ 3n+3=O(n) /* 3n+3?4n当 n?3 */ 100n+6=O(n) /* 100n+6?101n 当 n?10 */ 10n2+4n+2=O(n2) /* 10n2+4n+2?11n2 当 n?5 */ 6*2n+n2=O(2n) /* 6*2n+n2 ?7*2n 当 n?4 */ 时间复杂度T(n)按数量级递增顺序为: 例:分析以下程序段的时间复杂度。 i=1; ① while(in) i=i*2; ② 注1 O()为渐近符号。 复杂度高 复杂度低 O(2n) O(nk) … O(n2) O(nlog2n) O(n) O(log2n

文档评论(0)

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

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

1亿VIP精品文档

相关文档