一、算法
算法(algorithm)是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。算法就是对解决这个问题的方法和步骤的描述。算法是在解决问题时,按照某种机械步骤一定可以得到问题结果的处理过程。
二、算法的三要素
操作(运算)、控制结构、数据结构
三、算法的基本特征
有穷性、确定性、可行性、零个或多个输入、一个或多个输出
四、算法设计的要求
正确性、可读性、健壮性、高效率与低存储量的需求
五、算法效率的度量
- 时间复杂度(渐进时间复杂度)
T(n)=O( f(n) )
n(问题规模):算法中基本操作重复执行的次数
f(n):问题规模n的某个函数
O():为渐进符号
】
(a) {++x;s=0;}//O(1)
(b) for(i=1;i<=n;i++){++x;s+=x;}//O(n)
(c) for(j=1;j<=n;++j)
for(k = 1;k<=n;++k){++x;s+=x;}//O(n^2)
for(j=1;j<=n;j=j+1){
for(k=1;k<n;k=k+1){
x=x+1;
}
}
//内层循环
x=x+1;k=k+1; //n^2
k<n; //n(n+1)
//外层循环
k=1;j=j+1; //n
j<=n; //n+1
//综上运行时间是
n^2+n(n+1)+n+n+1=n^2+n^2+n+n+n+1=2n^2+4n+1
//综上时间复杂度为:
O(n^2)
- 空间复杂度
S(n)=O(f(n))