windows第11章数据结构1.ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
查找操作时间复杂度 思考?定位查找操作时间复杂度 查找操作有2种 取表元public T GetElem(int i) 按值查找public int Locate(T value) datas 0 1 2 3 索引号 4 5 6 7 Maxsize last 12 50 200 6 73 顺序表的实现-具体代码分析 Demo 顺序表应用举例 反转 已知顺序表 L,写一反转算法将其倒置,下面是顺序表倒置前后的数据存储图。 datas 0 1 2 3 索引号 4 5 6 7 Maxsize 12 50 200 6 73 datas 0 1 2 3 索引号 4 5 6 7 Maxsize 6 200 50 12 73 顺序表练习 练习:合并顺序表 有数据类型为整型的顺序表 SLa 和 SLb,其数据元素均按从小到大的升序排列。 编写一个算法将它们合并成一个表 SLc。 要求 SLc 中数据元素按降序排列。 算法思路: 依次倒序扫描SLa 和 SLb 的数据元素,比较 SLa 和 SLb 当前数据元素的值; 将较大值的数据元素赋给SLc,如此直到一个顺序表被扫描完; 然后将未完的那个顺序表中余下的数据元素赋给SLc即可。 SLc的容量要能够容纳SLa和SLb两个表相加的长度。 顺序表作业 作业 在“合并顺序表”这道练习的基础上添加一个限制条件,要求 SLc 中数据元素不能重复。 总结 数据结构及分类 是相互之间存在一种或多种特定关系的数据元素的集合 集合,线性表,树,图 算法 对某一特定类型的问题的求解步骤的一种描述 算法复杂度 基本操作重复执行的频度 一般的书写方式: O(1), O(n), O( ), O( ) 线性表 具有相同类型的数据元素的一个有限序列 最简单的线性表-顺序表 用一块地址连续的存储空间依次存储线性表的数据元素。 * 成功之路 数据结构与算法(1) 李元波 回顾 值类型与引用类型 装箱与拆箱 数组:同一类型的若干数据连续存储的集合 形式参数 索引器:在类或结构接口中,也可以像引用数组一样引用自己的成员 结构:关键字struct声明,结构跟类相似,可以包含构造函数、常数、字段、方法、属性 枚举 :用关键字enum声明,枚举是用于存储一组数值常量的集合 ArrayList,Hashtable,Queue,Stack ListT,DictionaryTKey,TValue 课程目标 了解什么是数据结构 数据结构的主要分类 什么是算法 算法复杂度 掌握第一种数据结构: 最简单的线性表-顺序表 数据结构 数据结构(Data Structure) 是相互之间存在一种或多种特定关系的数据元素的集合。在任何问题中,数据元素之间都不是孤立的,而是存在着一定的关系,这种关系称为结构(Structure)。 基本数据结构 集合:数据元素除了存在“同属于一个集合”的关系外,不存在任何其它关系(a)。 线性结构:数据元素存在着一对一的关系(b)。 树形结构:数据元素存在着一对多的关系(c)。 图状结构:数据元素存在着多对多的关系(d)。 (a)集合 (b)线性结构 (c)树形结构 (d)图状结构 基本数据结构-线性结构 学生信息表是一个线性的数据结构,表中的每一行是一个记录(在数据库信息处理系统中,表中的一个数据元素称为一个记录)。一条记录由学号、姓名、行政班级、性别和出生年月等数据项组成。表中数据元素之间的关系是一对一的关系。 基本数据结构-树形结构 家族关系是典型的树形结构 树形结构具有严格的层次关系 基本数据结构-图状结构 四个城市的公路交通图 每个城市是一个顶点(在图状结构中,数据元素称为顶点),它们之间是多对多的关系。 这些公路构成了一个公路交通网,所以,又把图状结构称为网状结构(NetworkStructure) 算法 算法(Algorithm)是对某一特定类型的问题的求解步骤的一种描述,是指令的有限序列。其中的每条指令表示一个或多个操作。 算法时间复杂度 一个算法的时间复杂度是指该算法的运行时间与问题规模的对应关系。 通常把算法中基本操作重复执行的次数(频度)作为算法的时间复杂度。 算法中的基本操作一般是指算法中最深层循环内的语句 int x = n; int y = n+1; for(int i = 0; i x ; i ++) for( int j = 0; j y ; j ++) { //do something } 算法时间复杂度 算法中基本操作重复执行的频度T(n)是问题规模n的某个函数f(n),记作:T(n)=O

文档评论(0)

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

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

1亿VIP精品文档

相关文档