算法的定义及特性:
(1)有穷性:一个算法必须总是执行有穷步后结束,且每一步都必须在有穷时间内完成.
(2)确定性.
(3)可行性.
(4)输入:可以有0个或多个输入.
(5)输出:一个或多个输出.
评价算法优劣的基本标准:
(1)正确性
(2)可读性
(3)健壮性
(4)高效性
算法的时间复杂度:
1.算法的执行时间和语句的频度
一个算法的执行时间大致上等于其所有的语句执行时间的总和,而语句的执行时间则为该语句的重复执行的次数和执行一次所需时间的乘积.
2.问题规模和算法的时间复杂度
算法求解问题的输入量成为问题的规模,一般用n表示.
一个算法的时间复杂度是该算法的执行时间,记作T(n),T(n)是该算法所求解问题规模n的函数.当问题的规模n趋向无穷大时,T(n)的数量级称为算法的渐进时间复杂度,记作:
T(n) = O(f(n))
算法的空间复杂度:
算法的存储需求.它也是问题规模n的函数,记作:
S(n) = O(f(n))