算法与算法分析
(1)算法的定义和特性
算法是用于解决某类问题的有限长的操作序列。
一个算法必须满足五个特性
- 有穷性,一个算法必须在有穷步骤后结束,且每个步骤都能在有穷时间内完成。
- 确定性,算法的每个步骤都有明确的规定,不能存在二义性。
- 可行性,算法的每个步骤都可以通过已经实现的基本操作经有限次执行来实现。
- 输入,算法需要有零个或多个输入。
- 输出,算法需要有一个或多个输出,无输出的算法是无意义的。
(2)评价算法优劣的基本标准
- 正确性,在输入数据正确的情况下,能够在有限的时间内输出正确的结果。
- 可读性,算法应该便于人们理解和交流。
- 健壮性,当输入数据非法时,算法可以发现错误并进行适当地处理,而不是输出莫名其妙的结果。
- 高效性, 高效性分为时间和空间两个方面,时间高效指算法执行效率高,空间高效指算法执行占用存储空间合理。
(3)算法的时间复杂度
1)算法的问题规模和语句频度
问题规模是算法求解问题输入量的多少,一般用整数n表示。n越大,算法执行的时间越长。
算法中一条语句的重复执行次数被称为算法的语句频度。
import java.io.*;
int i,j;
int n = 100;
for(i = 1;i <= n;i++) //这条语句的频度为n + 1
{
System.out.println(i);