数据结构Java语言描述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
❖ 数据项是具有独立含义的最小标识单位。
数据结构
数据的逻辑结构可描述为: Group=(D,R)
有限个数据元素的集合 这些数据元素间关系的集合
数据的逻辑结构可描述为: Group=(D,R)
数据的逻辑结构——线性结构
A , B , C , ·······,X ,Y , Z
线性表——结点间是以线性关系联结
数据结构
❖ 数据结构即是描述数据的组织形式及操 作的一门课程。
数据的组织形式相关研究 对相应组织形式的数据上的操作研究。
什么是程序?
❖ 程序(Program)就是供计算机执行后,能完成特 定功能的指令序列(Instructions sequence)
程序=计算机指令序列
❖ 程序包含两方面的内容
数据对象(Objects)及数据对象之间关系
阶和指数阶; O(log2n)为对数阶
算法的时间性能分析
❖定义:如果存在两个正常数c和n0,对于 所有的n≧n0,有︱f(n) ︳≦c|g(n) ︳ 记作:f(n)=O(g(n))
❖定理:若A(n)=amnm +am-1nm-1 +…+a1n+a0是一个m次多项式,则: A(n)=O(nm)
❖ 例1、{x++;s=0;}
语句频度为:n3 n2
其时间复杂度为: (n3)
多项式时间复杂度和指数时间复杂度
❖ 以下六种计算算法时间的多项式是最常用的。其关 系为: O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n3)
❖ 指数时间的关系为:O(2n)<O(n!)<O(nn) ❖ 参见P53图4-2,图4-3 ❖ 当n取得很大时,指数时间算法运算时间远远超过
学生成绩表
学号 9861109 9861107 9861103
姓名 张卓 刘忠赏 胡孝臣
成绩 100 95 86
数据的逻辑结构——树形结构
全校学生档案管理的组织方式
数据的逻辑结构——图形结构
节点间的连结是任意的
1
4
1
2
3
2
3
数据的存储结构——顺序存储
数据的存储结构——链式存储
算法和算法分析
❖ 数据结构(Data structure)
对这些对象的处理过程
❖ 算法(Algorithm)
程序/数据结构/算法
❖ 程序 = 数据结构 + 算法 (Program = Data Structure +
Algorithm)
这个公式由Niklaus Wirth首先提出。 Niklaus Wirth 是PASCAL之父和结构化程序 设计的首创者,1984图灵奖获得者。
语句频度为: 11 其时间复杂度为: (1)
其时间复杂度仍为O(1),即常量阶。 ❖ 例2、for(i=0;i<n; i++)
{x++;s+=x;}
语句频度为: (11)n 2n 其时间复杂度为: (n)
即时间复杂度为线性阶。
例3、for(i=0;i<n;i++) for(j=0;j<n; j++) { c[i][j]=0; for(k=0;k<n; k++) c[i][j]+=a[i][k]*b[k][j]; }
多项式时间算法。
算法的存储空间需求
❖ 空间复杂度:算法所需存储空间的度量, 记作: S(n)=O(g(n))
其中n为问题的规模(或大小)
数据类型
❖类型是一组值的集合。 ❖数据类型是指一个类型和定义在该类型
上的操作集合。 ❖数据类型定义了数据的性质、取值范围
以及对数据所能进行的各种操作。 ❖如: Java中整型类型int的值集是{-
Operation1: //操作1,
Operation2: //操作2
……
}
第一章:面向对象的方法
❖ 基本概念
数据抽象 对象 类 接口
姓名 张卓 刘忠赏 胡孝臣
成绩 100 95 86
抽象数据类型(Abstract Type,简称ADT)
❖ ADT是指抽象数据的组织和与之相关的操作。可
以看作是数据的逻辑结构及其在逻辑结构上定义 的操作。
❖ 一个ADT可描述为:
ADT ADT-Name{
Data:
//数据说明
数据元素之间逻辑关系的描述
❖ (3)可行性——即算法描述的操作都是可以通 过已经实现的基本运算执行有限次来实现的。
❖ (4)输入——一个算法有零个或多个输入。 ❖ (5)输出——一个算法有一个或多个输出。
评价算法好坏的标准
❖ 求解同一计算问题可能有许多不同的算法,如 何去评价这些算法的优劣?
❖ 选用的算法首先应该是“正确”的。此外,主 要考虑如下三点:
① 执行算法所耗费的时间; ② 执行算法所耗费的存储空间,其中主要考虑辅
助存储空间; ③ 算法应易于理解,易于编码,易于调试等等。
算法的时间性能分析
❖ 算法执行的时间等于所有语句执行时间的总和, 是算法所处理的数据个数n的函数,表示为: O(f(n)),
❖ O(f(n))称为该算法的时间复杂度。 ❖ O(1)表示算法的时间是一个常数,不依赖于n; ❖ O(n)表示算法的时间与n成正比,是线性关系; ❖O(n2) ,O(n3) ,O(2n)分别称为平方阶、立方
❖ 数据的运算通过算法(Algorithm)描述, 讨论算法是数据结构课程的重要内容之 一。
❖ 算法是对特定问题求解步骤的一种描述。 ❖ 数据结构中常见ห้องสมุดไป่ตู้算法有:检索、排序、
插入、删除、修改等。
算法具有以下五个特性:
❖ (1)有穷性——算法必须总是在执行有穷步之 后结束。
❖ (2)确定性——算法中每一条指令必须有确切 的含义。不存在二义性。
232,…,-2,-1,0,1,2,…,232-1},还包括对这 个整数类型进行的加(+)、减(-)、乘(*)、 除(/)和求模(%)操作。
数据类型
❖Java语言提供了一些基本数据类型。 ❖利用基本数据类型,软件设计人员还可
以设计出各种复杂的数据类型。
学号 9861109 9861107 9861103
数据
❖ 数据是信息的载体。它能够被计算机识 别、存储和加工处理,是计算机程序加 工的“原料”。
❖ 随着计算机应用领域的扩大,数据的范 畴包括: 整数、实数、字符串、图像和声音 等。
数据元素(Data Element)
❖ 数据元素是数据的基本单位。数据元素也称元 素、结点、顶点、记录等。
❖ 一个数据元素可以由若干个数据项(也可称为 字段、域、属性)组成。
数据结构
数据的逻辑结构可描述为: Group=(D,R)
有限个数据元素的集合 这些数据元素间关系的集合
数据的逻辑结构可描述为: Group=(D,R)
数据的逻辑结构——线性结构
A , B , C , ·······,X ,Y , Z
线性表——结点间是以线性关系联结
数据结构
❖ 数据结构即是描述数据的组织形式及操 作的一门课程。
数据的组织形式相关研究 对相应组织形式的数据上的操作研究。
什么是程序?
❖ 程序(Program)就是供计算机执行后,能完成特 定功能的指令序列(Instructions sequence)
程序=计算机指令序列
❖ 程序包含两方面的内容
数据对象(Objects)及数据对象之间关系
阶和指数阶; O(log2n)为对数阶
算法的时间性能分析
❖定义:如果存在两个正常数c和n0,对于 所有的n≧n0,有︱f(n) ︳≦c|g(n) ︳ 记作:f(n)=O(g(n))
❖定理:若A(n)=amnm +am-1nm-1 +…+a1n+a0是一个m次多项式,则: A(n)=O(nm)
❖ 例1、{x++;s=0;}
语句频度为:n3 n2
其时间复杂度为: (n3)
多项式时间复杂度和指数时间复杂度
❖ 以下六种计算算法时间的多项式是最常用的。其关 系为: O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n3)
❖ 指数时间的关系为:O(2n)<O(n!)<O(nn) ❖ 参见P53图4-2,图4-3 ❖ 当n取得很大时,指数时间算法运算时间远远超过
学生成绩表
学号 9861109 9861107 9861103
姓名 张卓 刘忠赏 胡孝臣
成绩 100 95 86
数据的逻辑结构——树形结构
全校学生档案管理的组织方式
数据的逻辑结构——图形结构
节点间的连结是任意的
1
4
1
2
3
2
3
数据的存储结构——顺序存储
数据的存储结构——链式存储
算法和算法分析
❖ 数据结构(Data structure)
对这些对象的处理过程
❖ 算法(Algorithm)
程序/数据结构/算法
❖ 程序 = 数据结构 + 算法 (Program = Data Structure +
Algorithm)
这个公式由Niklaus Wirth首先提出。 Niklaus Wirth 是PASCAL之父和结构化程序 设计的首创者,1984图灵奖获得者。
语句频度为: 11 其时间复杂度为: (1)
其时间复杂度仍为O(1),即常量阶。 ❖ 例2、for(i=0;i<n; i++)
{x++;s+=x;}
语句频度为: (11)n 2n 其时间复杂度为: (n)
即时间复杂度为线性阶。
例3、for(i=0;i<n;i++) for(j=0;j<n; j++) { c[i][j]=0; for(k=0;k<n; k++) c[i][j]+=a[i][k]*b[k][j]; }
多项式时间算法。
算法的存储空间需求
❖ 空间复杂度:算法所需存储空间的度量, 记作: S(n)=O(g(n))
其中n为问题的规模(或大小)
数据类型
❖类型是一组值的集合。 ❖数据类型是指一个类型和定义在该类型
上的操作集合。 ❖数据类型定义了数据的性质、取值范围
以及对数据所能进行的各种操作。 ❖如: Java中整型类型int的值集是{-
Operation1: //操作1,
Operation2: //操作2
……
}
第一章:面向对象的方法
❖ 基本概念
数据抽象 对象 类 接口
姓名 张卓 刘忠赏 胡孝臣
成绩 100 95 86
抽象数据类型(Abstract Type,简称ADT)
❖ ADT是指抽象数据的组织和与之相关的操作。可
以看作是数据的逻辑结构及其在逻辑结构上定义 的操作。
❖ 一个ADT可描述为:
ADT ADT-Name{
Data:
//数据说明
数据元素之间逻辑关系的描述
❖ (3)可行性——即算法描述的操作都是可以通 过已经实现的基本运算执行有限次来实现的。
❖ (4)输入——一个算法有零个或多个输入。 ❖ (5)输出——一个算法有一个或多个输出。
评价算法好坏的标准
❖ 求解同一计算问题可能有许多不同的算法,如 何去评价这些算法的优劣?
❖ 选用的算法首先应该是“正确”的。此外,主 要考虑如下三点:
① 执行算法所耗费的时间; ② 执行算法所耗费的存储空间,其中主要考虑辅
助存储空间; ③ 算法应易于理解,易于编码,易于调试等等。
算法的时间性能分析
❖ 算法执行的时间等于所有语句执行时间的总和, 是算法所处理的数据个数n的函数,表示为: O(f(n)),
❖ O(f(n))称为该算法的时间复杂度。 ❖ O(1)表示算法的时间是一个常数,不依赖于n; ❖ O(n)表示算法的时间与n成正比,是线性关系; ❖O(n2) ,O(n3) ,O(2n)分别称为平方阶、立方
❖ 数据的运算通过算法(Algorithm)描述, 讨论算法是数据结构课程的重要内容之 一。
❖ 算法是对特定问题求解步骤的一种描述。 ❖ 数据结构中常见ห้องสมุดไป่ตู้算法有:检索、排序、
插入、删除、修改等。
算法具有以下五个特性:
❖ (1)有穷性——算法必须总是在执行有穷步之 后结束。
❖ (2)确定性——算法中每一条指令必须有确切 的含义。不存在二义性。
232,…,-2,-1,0,1,2,…,232-1},还包括对这 个整数类型进行的加(+)、减(-)、乘(*)、 除(/)和求模(%)操作。
数据类型
❖Java语言提供了一些基本数据类型。 ❖利用基本数据类型,软件设计人员还可
以设计出各种复杂的数据类型。
学号 9861109 9861107 9861103
数据
❖ 数据是信息的载体。它能够被计算机识 别、存储和加工处理,是计算机程序加 工的“原料”。
❖ 随着计算机应用领域的扩大,数据的范 畴包括: 整数、实数、字符串、图像和声音 等。
数据元素(Data Element)
❖ 数据元素是数据的基本单位。数据元素也称元 素、结点、顶点、记录等。
❖ 一个数据元素可以由若干个数据项(也可称为 字段、域、属性)组成。