目录
2.1 算法的概念
为了解决问题而采用的方法和步骤称为算法。针对不同的问题有不同的算法,同一个问题也可以有多种不同的算法。
2.2 算法的表示方法
1、自然语言表示算法
自然语言就是人们日常使用的语言,用自然语言描述算法,通俗易读。
【例1】任意输入三个数,按从小到大排序输出。
S1:输入a,b,c 。
S2:如果 a>b ,则交换 a 和 b 的内容,否则 a,b 的内容不变。
S3:如果 a>c ,则交换 a 和 c 的内容,否则 a,c 的内容不变。
S4:如果 b>c ,则交换 b 和 c 的内容,否则 b,c 的内容不变。
S5:按a,b,c 的顺序输出 a,b,c 。
S6:结束。
自然语言表示算法通俗易读,但文字烦琐,而且有时表示不严谨,容易出现歧义。尤其对于复杂程序用自然语言表示不够清晰。所以对于复杂的算法,一般不用自然语言表示。
2、传统流程图表示算法
传统流程图是用一些图框加文字说明表示算法的各种操作步骤,用箭头表示程序执行的走向,直观,形象,好理解。常见框图符号如图所示。
【例2】输入一个年号,判断输出该年是否为闰年。
这种流程图表示算法的好处是直观形象,流程清晰。缺点是占用面积大,而且由于允许使用流程线,使流程可以任意转移,对于复杂的程序会使人不容易弄清程序的思路。
3、用 N-S 结构化框图表示算法
特点:取消了流程线,不允许流程任意转移,只能从上到下顺序进行。
2.3 算法的特征
1、可行性
针对实际问题而设计的算法,执行后应能得到满意的结果。
2、有穷性
一个算法应该在有限的时间内完成,即算法应在执行有限的操作步骤后终止。
3、确定性
算法中的每一步都应有明确的说明,不应出现模棱两可的解释和多义性。
4、有效性
算法中的每一步都应能有效地执行。
5、拥有足够的信息
要使算法有效,必须为算法提供足够的信息。
6、有或没有输入
一个算法可以有一个或多个算法,也可以没有输入。
7、至少有一个输出
没有输出的算法是没有意义的。
2.4 算法设计的要求
1、正确性
算法的正确性是指算法至少应该具有输入,输出和加工处理无歧义性,能正确反应问题的需求,能够得到问题的正确答案。
2、可读性
算法主要是为了方便人的阅读与交流,其次才是执行。
3、健壮性
当输入数据不合法时,算法也能做出相关处理,而不是产生异常或莫名其妙的结果。
4、高效率与低存储量的需求
设计算法时应尽量满足时间效率高和存储量低的需求。