目录
下一篇: 线性表的定义和基本操作
程序=数据结构(现实问题信息化)+算法(处理信息解决实际问题)
一、算法的基本概念
概念:对特定问题求解的一种描述
1、五个重要特性(并非用来定义算法,只是是算法的必要条件)
- 有穷性:执行有限步后结束
- 确定性:相同的输入只能得出相同的输出
- 可行性:算法中描述的操作都能用现有已实现的基本运算执行有限次来实现
- 输入:有0个或1个输入
- 输出:有1个或多个输出
2、好算法应达到的目标
- 正确性:能够正确地解决问题
- 可读性
- 健壮性:输入非法时,算法能适当作出反应或进行处理
- 效率与低存储量需求
二、算法效率的度量
1、时间复杂度:
表示方法:T(n)=O(f(n))
T(n)是所有语句的频度之和,n是问题规模,O是T(n)的数量级
加法规则:T(n)=T1(n)+T2(n)=O(f(n))+O(g(n))=O(max(f(n),g(n)),就是取最大的那个
例如:n2+n=n2
乘法规则:T(n)=T1(n)*T2(n)=O(f(n))*O(g(n))=O(f(n)*g(n))
2、时间复杂度
为实现计算所需的信息的辅助空间,若所需的辅助空间是常数则称为原地工作
S(n)=O(g(n))