1、算法:简单来说,就是求解问题的步骤的描述;
2、特性:
(1)有穷性:一算法必须在执行有穷步之后结束且每一步也须在有穷的时间内完成;
(2)确定性:算法的每一步都是有确切定义的,不存在二义性;
(3)可行性:算法的每一步都能有效地执行;
(4)输入:算法有0个或多个输入。算法执行过程中需从外界获取的一些信息;
(5)输出:算法至少有一个输出。输出的是算法执行的结果,如果没输出,那算法就将毫无意义;
3、优劣判断标准:
(1)正确性:算法能满足具体问题的要求,对于任何合法的输入都会得到正确的结果;
(2)可读性:指该算法被理解的难易程度,这直接影响到算法的交流、推广使用等;
(3)健壮性:当输入数据非法时,算法也能做出相应的判断,不致使瘫痪;
(4)时间复杂度和空间复杂度:时间复杂度是指算法运行所需的时间;空间复杂度指算法运行时所需的存储空间。两者的综合指标可以反映算法的效率,其中,随着硬件的发展,空间复杂度不再显得那么重要。
4、算法的描述:对问题的求解步骤的表达即算法描述。
主要方式如下:
(1)自然语言:利用人们日常的语言来描述;
(2)流程图:一种传统的算法描述方式。利用一些图框代表各种不同的性质的操作,用流程线来指示算法执行的方向。
它有3中基本结构:
利用上述符号和结构就能够准确表述算法;
(3)N-S流程图:可以说是在传统流程图上改进而来的,它省去了流程线。
以上3种算法的描述各有优缺点,可以根据自己的需要来选择使用哪一种。