什么是算法?
算法是对解决特定问题求解步骤的描述。包括自然语言描述,流程图描述,伪代码描述,程序代码描述等。
同一个问题可以使用不同的算法解决,如:1~100求和问题,可以使用for循环如:
int sum = 0 ;
int N = 100 ;
for(int i = 1 ; i<=100 ; i++){
sum+= i ;
}
也可以利用等差数列求和公式进行计算如:
int N = 100 ;
int sum = (N+1)*N / 2 ;
那么如何评价一个算法的好坏呢? “ 执行时间 ” ,度量执行时间的方法有两种,分别为:事后统计法和事前分析法。
事后统计法
事后统计法主要是通过设计好的程序和数据,利用计算机计时器对不同算法程序的运行时间进行比较,从而确定算法效率的高低。他存在以下弊端:
- 必须事先编好程序,再进行运行,如果程序处理的数据量较大,则会花费大量的时间和精力
- 时间的比较主要依赖于计算机硬件和软件环境
- 算法的测试数据设计困难,在数据量较小的时候,不管什么算法其运行