0%

JAVA基础-深入系统的学习数据结构与算法

一.概述
1.1 什么是数据结构
把数据元素按照一定关系组织起来的集合,用来组织和存储数据

1.2 数据结构分类
逻辑结构分类:
按照数据与数据之间关系分类,是抽象意义上的数据结构

分类 含义
集合结构 数据元素同属同一个集合,但是不存在任何关系
线性结构 数据元素与数据结构之间存在一对一关系(链表)
树形结构 数据元素之间存在一对多关系(树结构)
图结构 数据元素之间存在多对多关系
物理结构:
逻辑结构在计算机中真正的表示方式,也可以叫做存储结构

分类 含义 优缺点
顺序结构 把数据元素放到地址连续存储单元中,数据间的逻辑关系和物理关系一致(数组) 优点:数据单元相互间有索引

缺点:插入效率低
链式结构 内存单元可以是连续的,也可以是不连续的,数据元素间不能反映逻辑关系,因此需要一个指针存放元素地址 优点:无索引,插入效率高

缺点:查找效率低
1.3 什么是算法
在规定时间内,按照一定的条件,从已存在的数据进行计算,获得期望的结果

一个优秀的算法追求以如下两方面考虑:

1.花费最少时间完成需求
2.占用最少内存空间完成需求
二.算法分析
2.1 算法时间复杂度分析
事前分析法:
•算法采用的策略和方案
•编译产生的代码质量
•问题的输入规模(输入量的规模)
•机器执行指令的速度

2.2 算法空间复杂度分析