数据结构和算法概述
1.1 为什么要学习数据结构和算法
提升代码性能,结省空间复杂度和时间复杂度;
算法锻炼自己的逻辑思维;
更好的理解应用软件和框架
掌握了数据结构与算法,你看待问题的深度,解决问题的角度就会完全不一样。
一流的程序员搞算法,二流的程序员搞架构,三流的程序员搞业务;
1.2 数据结构和算法介绍
算法
是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制
算法是独立存在的一种解决问题的方法和思想
数据结构
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合
1.3 数据结构和算法关系
程序 = 数据结构 + 算法
数据结构是算法的基础
数据结构和算法是相辅相成的
数据结构是为算法服务的
算法要作用在特定的数据结构之上
1.4 线性结构和非线性结构
线性结构
特点
数据元素之间存在一对一的线性关系
分类
顺序存储结构(数组)
顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的
链式存储结构(链表)
链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素结点存放数据元素以及相邻元素的地址信息
常见的线性结构
数组、队列、链表和栈
非线性结构
二维数组,多维数组,广义表,树结构,图结构