数据结构与算法_课程介绍.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文档。上传文档
查看更多
数据结构与算法 Data Structures and Algorithm 数据结构基本概念 数据结构的起源 早期人们把计算机理解为数值计算的工具 现实中,更多的不是解决数值计算的问题 数据结构的起源 1968年Prof. Donald E. Knuth 数据的逻辑结构和存储结构及操作 数据结构的起源 1968年数据结构作为独立的课程出现。从此计算机相关专业开始享受《数据结构》的“折磨” 数据结构的起源 70年代初,出现大型程序,结构程序设计方法学受到追捧,出现了著名的公式: 程序设计=数据结构+算法 基本概念 数据是什么? 描述客观事物的符号 计算机中可以操作的对象 能被计算机识别 输入给计算机处理的符号 基本概念 数据 数值型:整数、实型等 非数值型:字符、声音、图像、视频 基本概念 数据就是必须满足两个条件的符号: 可以输入到计算机中 能被计算机程序处理 数值型类型数据可以进行数值计算 字符型数据需要非数值处理 声音、图像、视频等其实可以通过编码的手段变成字符数据来处理。 基本概念 数据元素是什么? 组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。 在人类中,数据元素是指什么? 畜类呢? 基本概念 数据项是什么? 一个数据元素可以由若干个数据项组成。 人这样的数据元素包含的数据项? 基本概念 数据项是数据不可分割的最小单位。 但在真正讨论问题时,数据元素才是数据结构中建立数据模型的着眼点。 例如:讨论一部电影时,是讨论电影的角色这样的“数据元素”,而不是角色的姓名或年龄这样的“数据项”。 基本概念 数据对象是什么? 性质相同的数据元素的集合,是数据的子集。 “性质相同” 数据元素具有相同数量和类型的数据项 人都有姓名、生日、性别等相同的数据项 基本概念 数据结构是什么? 相互之间存在一种或多种特定关系的数据元素的集合。 基本概念 逻辑结构与物理结构 按视点不同,数据结构分为 逻辑结构 物理结构 逻辑结构 逻辑结构 数据对象中元素之间的相互关系。 常见的逻辑结构 集合结构 线性结构 树型结构 图形结构 逻辑结构 集合结构 除同属一集合 相互之间无其他关系 逻辑结构 线性结构 数据元素之间是一对一的关系。 逻辑结构 树型结构 数据元素之间存在一对多的层次关系。 逻辑结构 图形结构 数据元素之间是多对多的关系 物理结构 物理结构:数据的逻辑结构在计算机中的存储形式 顺序存储结构 链式存储结构 精确计算: 【定义】一个算法是解决某一类问题的步骤的描述。一般而言,算法应该符合以下五项要求: (1) 输入:它接受一些输入(有些情况下不需要输入); (2) 输出:至少产生一个输出; (3) 确定性:算法的每一步必须有充分明确的含义,不可以有歧义; (4) 有限性:算法是一个有限指令集,并一定在有限步骤之后终止; (5) 可行性:算法的每一步必须在计算机能处理的范围之内。 第1章 概论 §3.1 算法定义 ? 另外,算法的描述可以不依赖于任何一种计算机语言以及具体的实现手段。可以用自然语言、流程图等方法来描述。 ? 但是,用某一种计算机语言进行伪码描述往往使算法容易被理解,本书即采用C语言的部分语法作为描述算法的工具。 10/25 〖例〗 选择法排序:把n个整数从小到大排序。 思想:从余下的未排序的部分整数中,挑选最小整数放在前面已排序部分的后面. 如何进行排序? 哪里? void SelectionSort ( int List[], int N ) { /* 将N个整数List[0]...List[N-1]进行非递减排序 */ for ( i = 0; i N; i ++ ) { MinPosition = ScanForMin( List, i, N–1 ); /* 从List[i]到List[N–1]中找最小元,并将其位置赋给MinPosition */ Swap( List[i], List[MinPosition] ); /* 将未排序部分的最小元换到有序部分的最后位置 */ } } 选择排序 = 找最小整数 + 交换至合适位置. 第1章 概论 §3.1 算法例子 11/25 ? 具体衡量、比较算法优劣的指标主要有两个: ? 空间复杂度S(n) ——根据算法写成的程序在执行时占用存储单元的长度。这个长度往往与输入数据的规模有关。空间复杂度过高的算法可能导致使用的内存超限,造成程序非正常中断。 第1章 概论 §3.2 算法复杂度 ? 时间复杂

文档评论(0)

武神赵子龙 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档