计算机算法设计方案书与分析报告
计算机算法设计与分析
(书要整体看看再结合老师画的重点)
第一章
1.算法:是在有限步骤内求解某一问题所使用的一组定义明确的规则。
程序:是算法用某种程序设计语言的具体实现。
1.算法评定标准:
时空的观点
标准1 算法在计算机上的执行的时间最短。
标准2 算法所需要的存储空间最小。
发展的观点
标准3 算法的适应性强。
设计的观点
标准4 算法的设计时间少。
交流的观点
标准5 算法容易理解。
2.时间复杂性论:
原因:
所有关于时间复杂性增长的阶的定义和渐近界的讨论都可移植到空间复杂性的讨论中。
算法的空间复杂性相对简单,它不可能超过运行时间的复杂性,因为写入每一个内存单元都至少需要一定的时间。对于一个相同的输入I,S(N)=O(T(N))。
空间复杂性降低到一定程度时会大幅度增加时间复杂性,而时间复杂性的降低一般对空间复杂性不会有太大影响。
例:求两个n阶矩阵的乘积C=AB的算法及其时间复杂性。
定义矩阵A[ ][n],B[ ][n],C[ ][n]
for i ←0 to n←频度:n+1
for j ←0 to n ←频度:n(n+1)
C[i][j] = 0;←频度:n2
for k ←0 to n←频度:n2(n+1)
C[i][j] = C[i][j] + A[i][k] * B[k][j]; ←频度:n3
end for
end for
End for
时间复杂性T(n) = n+1+n (n+1) + n2 + n2(n+1) + n3 = 2n3+3n2+2n+1
上界的阶越低则评估越有价值。
下界的阶越高,则评估精度越高,也就越有价值。
T(n)大概有三种计算方法:
计算迭代次数(循环结构的执行次数)
计算基本运算的频度
使用递归方程(多用于递归算法)
1 / 13