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

DataStructure(java).doc

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

第一章:基本概念 数据类型: 基本数据类型:如java中的int,long,string等 抽象数据类型:没有定义具体数据类型的设计元素。如java中的类 数据结构:数据元素之间存在的一种或多种特定的关系。数据结构包括三方面的问题:数据的逻辑结构、数据的存储结构、数据的操作 数据的逻辑结构: 线性结构: 树结构: 图结构: 数据的存储结构: 顺序存储结构:数据元素存储在一块地址连续的空间中。例如数组结构 链式存储结构:逻辑上相邻的数据元素在物理上(即内存存储位置上)不一定相邻,数据间的逻辑关系表现在节点的链接关系上。例如利用指针变量链接关联的数据节点 数据的操作 算法与算法设计 算法定义:算法是对问题求解过程中的一种描述,是为解决一类问题给出的一个确定的、有限长的操作序列。有穷性和可行性是算法最重要的两个特征。 算法描述:算法可以用文字、高级程序设计语言或类似于高级程序设计语言的伪码描述。此时,算法是由语义明确的操作步骤组成的有限序列,它精确的指出怎样从给定的输入信息得到要求的输出信息。 算法与数据结构: 对于同样的逻辑结构和存储结构,根据问题的不同要求,采用不同的算法 同样的数据结构,不同的存储结构,则采用的算法必然不同。 例如:冒泡排序、折半插入排序等适用于顺序存储结构的线性表,而不能用于链式存储结构的线性表;适用于链式结构线性表的排序算法有直接插入排序、简单选择排序等。 算法于程序: 程序=算法+数据结构 算法设计 算法分析 算法的时间复杂度:算法的执行时间等于所有语句执行时间的总和,是算法所处理的数据个数n的函数,表示为0 f n ,0 f n 称为该算法的时间复杂度(time Complexity)。O(1)表示时间是个常数,不依赖于n;O(n)表示时间于n成正比,是线性关系;O(n2)、O(n3)、O(2n)分别是平方阶、立方阶和指数阶;O(log2n)为对数阶。 算法的空间复杂度 第二章:线性表 线性表的概念:线性表(linear list)是相同类型的数据元素的有限序列,数据元素之间具有顺序关系。 线性表的抽象数据类型 线性表的数据元素:数据元素可以是基本类型也可以是抽象类型,但是必须是相同类型元素。 线性表的基本操作:求长度、访问(存储 替换等)、插入、删除、复制、合并、查找、排序、遍历 线性表的顺序存储结构:用顺序存储结构实现的线性表称为顺序表 顺序表的类定义 顺序表的操作 线性表的链式存储结构:用链式存储结构实现的线性表称为链表。 声明自引用的类:由于Java没有类似C中的指针类型,所以,不能用指针方式实现链表,可以使用java的“自引用的类”表示链式结构。自引用的类包含一个指向同一类的引用成员。例如: Public class Node Int data; Node next; Data 用于记载数据,next引用Node类的对象,next称为(link),即next可以替代指针将一个Node类的对象与另一个同类型的对象链接起来,实现节点间的链接。 创建并使用对象 单向链表: 单向链表的结点类 单向链表类 单向链表的操作: 两种存储结构性能的比较 单向循环链表:在单向链表中,将最后一个节点的链设置为指向链表的第一个节点,在该链表成为环状,成为单向循环链表。 双向链表:双向链表的每个节点除了成员变量data之外,还有两个成员变量链:prior指向前驱节点,next执行后继节点。 双向循环链表: 串(String):可以看成是每个节点仅有一个字符组成的线性表。串也称为字符串。 第三章:排序 排序的基本概念: 数据序列:待排序的数据元素的有限集合。 关键字:数据元素有多个数据项组成,以其中某个数据项作为排序依据,则该数据项称为关键字(Key)。在数据序列中,如果数据元素不同则关键字一定不同,则这样的关键字称为主关键字(primary key)。 排序算法的稳定性:在数据序列中,如果有两个数据元素r1和r2,它们的关键字k1等于k2,在未排序时r1位于r2之前,如果排序后,元素r1仍然在r2之前,则称这样的算法是稳定的,否则是不稳定的。 内排序与外排序:数据元素少,整个排序过程中所有的元素都可以保留在内存中,这样的排序称为内排序;数据元素多,以致它们必须存储在磁盘等外部存储介质上,在这样的排序称为外排序。 排序算法的性能评价:排序算法的时间复杂度,排序算法的空间复杂度。 插入排序:插入排序(insertion sort)的基本思想是:每趟将一个待排序的数据元素,按其关键字大小,插入到已排序的数据序列中,使得插入后的数据序列仍是已排序的。插入排序算法有三种:直接插入排序,折半插入排序和希尔排序。 直接插入排序:时间复杂度O(n2)。 希尔排序: 交换排序:冒泡排序,时间复杂度O(n2),改进的冒泡排序,时间

文档评论(0)

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

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

1亿VIP精品文档

相关文档