算法仍然统治着软件世界。可以使用算法将复杂的代码分解为更小、更低调的块。有人可能想知道流程图也可以帮助建立对代码的正确理解,但答案是否定的。在回答为什么算法仍然优于流程图的问题之前,让我们看看算法和流程图在技术方面的含义。
算法
算法是指构成程序代码的一组语句。它们是用一种简单易懂的语言逐步编写的。英语是算法最常用的语言。这些是算法的 5 个主要属性:
- 输入:每个算法都由一个或多个输入组成。
- 输出:每个算法都会产生一个输出。
- 有效性:每个算法都可以用笔和纸写出来。
- 有限性:使用的每个函数都会返回一些值。
- 确定性:每个算法都是独一无二的。
- 复杂度:算法的复杂度是指算法执行所需的时间和空间量。这是算法的一个因素。
算法的第一步写成Begin表示算法开始,最后一步写成End表示算法结束。
流程图
流程图是指算法的图形或图形表示。该算法通常以形状的形式显示。
- 开始或停止以椭圆形表示。
- 输入或输出以平行四边形表示。
- 处理语句以矩形表示。
- 决策陈述以菱形表示。
- 每个形状都使用箭头(->)链接
流程图比算法更容易理解,因为它们以图形形式表示。人们可以通过查看流程图轻松编写代码。然而算法仍然是首选,原因如下:
- 甚至可以为复杂的代码编写算法,而在流程图中则变得困难。
- 条件和循环语句可以用算法编写,但这些语句不能用流程图表示。
- 算法的调试更容易,而流程图无法调试,因为这样做非常复杂。
- 在流程图的情况下有一些规则要遵循,但算法没有特定的规则。
考虑将两个偶数相加的简单算法:
Step 1: Begin
Step 2: read a, b, c
Step 3: check if(a%2==0 && b%2==0)
Step 4: if true display a+b=c is even
Step 5: else the statement is false
Step 6: display it is not even
Step 7: End
该算法是用简单易懂的语言编写的。可以很容易地为此编写代码。这在流程图的情况下是不可能的,因为有条件语句,如算法中给出的 if….else 语句。许多顶级组织更喜欢算法而不是流程图来编写代码。这是以更简单的语言正确理解代码的最佳方式。