数据结构和算法
学习数据结构和算法是为了从 时间复杂度、空间复杂度出发设计出更好的解决方案。
数据结构:带有结构特性的数据元素的集合。
逻辑结构:数据元素之间的相互关系
- 集合结构:数据元素属于同一个集合,集合中数据是无序的,且每一个元素都是唯一的。
- 线性结构:一对一。除了第一个和最后一个,左侧和右侧分别只有一个数据相邻。(数组、链表)
- 树形结构:一对多
- 图形结构:多对多。
物理结构:数据的存储方式。
- 顺序存储:将数据元素存放在一片地址连续的存储单元里
- 链式存储:数据存放在不同的存储单元。每个存储单元,包含数据和下一个节点的地址。
算法追求的目标:
所需运行时间更少(时间复杂度更低);
占用内存空间更小(空间复杂度更低)。
算法复杂度
算法复杂度:问题的输入规模为n的条件,程序的时间使用情况和空间使用情况
时间复杂度:
基本操作次数作为时间复杂度的度量标准。
参考: