算法的特征;
1)有穷性
一个算法必须在执行有穷步之后结束,且每一步都在有穷时间内完成,不能无限的执行下去。
2)确定性
算法的每一个步骤都应当是确切定义的,对于每一个过程不能有二义性,必须对将要执行行的每个动作作出严格二清楚的规定。
3)可执行
算法中的每一个步都应该能有效地运行,也就是说算法是可执行的,并要求最终得到正确的结果。
4)输入
一个算法应该有零个或多个输入,输入是在执行算法时需要从外界取得的一些必要的信息。
5)输出
一个算法有一个或多个输出。输出算法的最终结果。
算法的优劣:
1)正确性
任何合法的输入,算法都会得出正确的结果。
2)可读性
算法被理解的难易程度。
3)健壮性
一个程序完成后,运行该程序的用户对程序的理解各有不同,并不能保证每一个人都能按照要求进行输入。
4)时间复杂度和空间复杂度
(1)时间复杂度:算法运行所需要的时间。
(2)空间复杂度:算法运行所需的存储空间得多少。