- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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),改进的冒泡排序,时间
您可能关注的文档
- An introduction to Reaction Engineering.ppt
- AMI BIOS系统设置详解.doc
- allegro152中添加测试点详解.doc
- Android SDK sample 之 SoftKeyboard.doc
- android中动态输入日期与时间.doc
- Android五大界面布局.docx
- android布局二.docx
- Android开发之旅.docx
- Android开发教程:环境搭建及HelloWorld.doc
- android焦点控制.doc
- 2025年扬州市职业大学单招职业适应性测试题库含答案.docx
- 2025年浙江交通职业技术学院单招职业倾向性考试题库参考答案.docx
- 2025年重庆幼儿师范高等专科学校单招职业倾向性测试题库审定版.docx
- 2025年陕西工业职业技术学院单招职业倾向性测试题库含答案.docx
- 2025年上海外国语大学贤达经济人文学院单招职业适应性测试题库完美版.docx
- 2025年丽水职业技术学院单招职业适应性测试题库完整版.docx
- 2025年惠州工程职业学院单招职业倾向性测试题库汇编.docx
- 2025年昭通卫生职业学院单招职业适应性测试题库含答案.docx
- 2025年河北工艺美术职业学院单招综合素质考试题库审定版.docx
- 2025年江苏省常州市单招职业倾向性考试题库新版.docx
最近下载
- 2024年江苏省淮安市中考数学试卷附答案解析.docx
- 2025山东省高校毕业生“三支一扶”计划招录1000人左右笔试备考题库及答案解析.docx
- 2022年口腔主治医师《专业实践能力》口腔内科学口腔黏膜病.doc
- DBJT14-101-2013 膨胀玻化微珠浆料复合保温板外墙外保温系统应用技术规程 .docx VIP
- 江苏省淮安市小升初数学试卷(上午场).doc VIP
- 江苏省淮安市小升初数学试卷.docx VIP
- 2025年山东省烟草专卖局校园招聘笔试备考试题及答案解析.docx
- 牙周病学思维导图.pdf VIP
- 江苏省淮安市2024届小升初数学试卷.doc VIP
- 计算机辅助药物设计专家讲座.pptx
文档评论(0)