算法: 对特定问题的求解方法,步骤—指令的有限序列。
描述:
- 自然语言
- 流程图:传统流程图,NS流程图
- 伪代码:类c
- 程序代码
算法是解决问题的方法,程序使用某种语言对算法的具体实现
算法的重要特性:
- 有穷性
- 确定性
- 可行性
- 有零个或多个输入
- 有一个或多个输出
算法的要求:
- 正确性
- 可读性
- 健壮性
- 高效性
算法效率:
- 时间效率
- 空间效率
算法时间效率的度量
大O表示法
- 找出频度最大的语句
- 找出基本语句的频度,得到问题规模n的某个函数
- 取其数量级用O表示
**解:**若只执行一次:i=2 若执行两次:i=4.。。
所以x<=log2n; T(n)=O(lgn);
平均(最坏)最好时间复杂度
算法空间复杂度:
- 算法本身占据的空间:输入/输出,指令,常数。变量
- 算法要使用的辅助空间
eg:
将一维数组a中的n个数逆序存放到原数组中
S(n)=O(1) ------------------------------------------------------------------- S(n)=O(n)