算法与程序
算法是解决问题的一种方法或一个过程,考虑如何将输入转换成输出,一个问题可以有多种算法
程序是程序设计语言对算法的具体实现
算法特性
有穷性:
一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成
确定性:
算法中的每一条指令必须有确切的含义,没有二义性,在任何条件下,只有唯一的一条执行路径,即对于相同的输入只能得到相同输出
输入:
输出:
算法设计要求
正确性
可读性
健壮性
高效性
算法的效率
时间效率
空间效率
算法执行过程中所耗费的存储空间
时间 与 空间 效率有时候是矛盾的
算法运行时间 = 每条语句频度 * 该语句执行一次所需时间
把算法所耗费的时间定义为该算法中每条语句的频度之和,则上述算法的时间消耗T(n)为
算法的渐进时间复杂度:
比较不同的算法时间效率,比较它们的数量级
两个不同的算法,时间消耗分别是 T2时间消耗比较大
算法时间复杂度的渐进表达式
算法时间复杂度定义


