数据结构的基本概念
数据对象是具有相同性质的数据元素的集合,是数据的一个子集。
数据结构是相互之间存在一种或多重特定关系的数据元素的集合。
数据结构的三要素
- 逻辑结构-如何去定义
- 集合结构
- 线性结构-一对一
- 树形结构-一对多
- 图(网)状结构-多对多
- 数据的运算
结合逻辑结构、实际需求来定义基本运算(增删改查) - 物理结构(存储结构)-计算机如何去实现
- 顺序存储-逻辑上相邻的元素物理上也相邻
- 链式存储-逻辑上相邻的元素可以不相邻,用指针表示元素之间逻辑关系
- 索引存储-建立索引表,索引项(关键字,地址)
- 散列存储(哈希存储)-用关键字直接找到地址
数据的存储结构会影响存储空间分配的方便程度和数据运算的速度
算法的概念
算法的时间复杂度
只考虑阶数高的部分-大O表示法
加法规则-只保留最高阶的项
乘法规则-多项相乘,都保留
时间复杂度越小,算法越优秀(常对幂指阶)
tips:
- 顺序执行的代码只会影响常数项,通常可以忽略
- 只需挑选循环中的一个基本操作来分析n与执行次数的关系
- 如果有多层嵌套循环,只需要关注最深层循环循环了几次
一般只会看最坏时间复杂度和平均时间复杂度
算法的空间复杂度