本文内容较为简洁,适合学过的同学进行回顾。
程序设计 = 数据结构+算法
数据结构:就是关系,数据之间关系的集合。
分为:逻辑结构和物理结构
逻辑结构:数据元素的相互关系。
1.集合结构:集合中数据无相互关系
2.线性结构:一对一关系
3.树形关系:一对多关系
4.图形结构:多对多关系
物理结构:逻辑结构在计算机中的存储形式
即数据元素存储方式:
1.顺序存储结构:如数组,是把元素存放在地址连续的存储单元里。
2.链式存储结构:把数据元素存放在任意的储存单元里。
算法
算法特征:输入、输出、确定性、有穷性、可行性
算法要求:正确性、可读性、健壮性(数据不合理的处理)、时间效率高和存储量低
算法效率的度量方法(事前事后)
时间取决于下面因素:
1.算法采用的策略、方案
2.编译产生的代码质量
3.问题的输入规模
4.机器执行指令的速度
时间复杂度:
O( ?): ?其实就是一个数学概念,趋于无穷时的阶数,所以有O(1)、O(n)、O(n2)、O(logn)、O(2n)等等概念,其实都是趋于无穷时比阶的结果。
考虑时间复杂度最坏情况和平均情况,即程序最长执行次数和平均执行次数。
空间复杂度:就是对内存空间的需求