JAVA数据结构与算法知识点(一)

116 阅读2分钟

1、算法:一组有穷的指令集,对特定问题求解步骤的一种描述,不为程序也不等于计算方法

五个重要特征:

确定性:每条指令有确切含义,同样的输入得到同样的输出

有穷性:在一段时间内完成,在执行后结束

可行性:通过已经实现的基本运算执行有限次

输入:一个算法有零个或者多个的输入,取自某个特定对象的集合

输出:一个或多个输出,输出同输入有某种特定关系的量

组成要素: 算法的基本运算和操作、基本控制结构、基本设计方法

2、复杂度(时间复杂度和空间复杂度):

时间复杂度:计算工作量,一个算法所用的时间包括编译时间和运行时间

空间复杂度:执行算法需要的内存空间,包括算法程序所占用的空间,输入的初空间复杂度和时间复杂度并不相关

3、基本概念

数据:能输入到计算机中被程序识别和处理的符号总成

元素:数据基本单位

对象:性质相同的数据元素的集合

结构:某一数据对象中所有数据成员之间的关系组成的集合

4、逻辑结构和存储结构

数据的逻辑结构是对数据元素之间的逻辑关系的描述,与数据的存储无关,是面向问题的,是独立于计算机的。 它包括数据对象和数据的对象之间的关系

数据的存储结构也称为数据的物理结构,是数据在计算机中的存放的方式,是面向计算机的 它包括数据元素的存储方式和关系的存储方式

存储结构和逻辑结构的关系:一种数据的逻辑结构可以表示成多重存储结构 即数据的逻辑结构和存储结构不一定一一对应 常见的存储结构有:顺序、链接、索引等,采用不同的存储结构其数据处理的效率是不同的

5、线性结构和非线性结构

线性结构的条件(一个非空数据结构):

(1)有且只有一个根结点

(2)每个结点最多有一个前件,也最多一个后件

非线性结构的条件:不满足线性结构条件的数据结构

6、线性表及其顺序存储结构

线性表是由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的;复杂线性表中,由若干项数据元素组成的数据元素称为记录,由多个记录构成的线性表称为文件