目录
算法(Algorithm):对特定问题求解步骤的一种描述,是指令的有限序列。有5个特征:
- (1)输入:一个算法有零个或多个输入。
- (2)输出:一个算法有一个或多个输出。
- (3)有穷性:一个算法必须在执行有穷步之后结束,且每一步都在有穷时间内完成
- (4)确定性:算法中的每一条指令必须有确切的含义,对于相同的输入只能得到相同的输出。
- (5)可行性:算法描述的操作可以通过已经实现的基本操作执行有限次来实现。
计算复杂度
- 把n称为问题的数据规模,把程序的复杂度记为O(n)。
- 复杂度只是一个估计,不需要精确计算。
- 例如在一个有n个数的无序数列中,查找某个数a,可能第一个数就是a,也可能最后一个数才是a。平均查找时间是n/2次,但是仍然把查找的时间复杂度记为O(n)。
- 在算法分析中,规模n前面的系数被认为是不重要的。
算法的评估
- O(1)计算时间是一个常数,和问题的规n无关。用公式计算时,一次计算的复杂度就是O(1),例如hash算法。在矩阵A[M][N]中查找i行j列的元素,只需要一