概念
数据的概念
- 数据元素
组成数据的最基本单位
- 数据项
一个数据由多个数据项组成
- 数据对象
性质相同的数据元素组成的集合
数据结构
数据结构:是指数据对象中数据元素之间的关系
逻辑结构
- 集合结构
数据元素之间没有特别关系,仅同属于一个集合
- 线性结构
数据元素之间是一对一的关系
- 树形结构
数据元素之间存在一对多的层次关系
- 图形结构
数据元素间是多对多的关系
物理结构
- 顺序存储
将数据存储在地址连续的存储单元里面
- 链式存储
将数据存储到任意的储存单元里面,通过地址保存的方式找到相关联的数据元素
算法
算法:特定问题求解步骤的描述
算法的特性
- 正确性
算法对于合法数据能够得到满足要求的结果;能处理非法输入,得到合理的结果;对于边界数据和压力数据都能得到满足
- 可读性
算法要方便阅读、理解和交流
- 健壮性
算法不应该产生莫名其妙的结果
- 性价比
利用最少的资源得到满足要求的结果
算法和数据结构间关系
程序 = 数据结构 + 算法
算法是为了解决实际问题而存在
数据结构是算法处理问题的载体
数据结构与算法相辅相成,共同解决问题
算法效率的度量
- 事后统计法
比较不同算法对同一组输入数据的运行处理时间
缺陷:不容易准确度量算法的效率
- 事前分析估算算法
通过操作数量度量算法的效率
算法的时间复杂度
算法效率主要通过时间复杂度进行判断
大O表示法用于描述算法的时间复杂度,它只关心操作数的最高次项
算法效率的度量
- 常见时间复杂度的比较
O(1) < O(log n) < O(n) < O(n*log n) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)
当时间复杂度大于O(n^3)时,即使n的值很小工程上也不接受
一般在分析算法时,重点考虑在最坏情况下的时间复杂度
算法重点关心时间复杂度
- 算法的空间复杂度也适用于大O表示法
空间换时间策略是开发中常用的策略
时间: 2024-10-07 16:18:22