目录
算法的特征
如何设计算法?
伪代码
“算法”一词最早出现在《周髀算经》这本书中,对应的英文单词是“algorism”(由 9 世纪的波斯数学家阿尔·霍瓦里兹米提出),代指阿拉伯数字的运算规则。随着计算机的快速发展,“算法”被赋予了新的含义,代指解决问题的方法,对应的英文单词演变为“algorithm”。
算法规定了解决某一问题的具体步骤,先做什么,再做什么,最后做什么,计算机只需要依照步骤运行,就可以解决问题。通常情况下,一个问题的解决方案可能有很多种,也就是说,一个问题可能对应有多种算法,每种算法都可以使用多种编程语言实现,例如 C、C++、Python、Java 等。
算法只是解决问题的思路,并非具体的程序代码。算法和程序之间的关系可以这样理解:程序员需根据算法(思路)编写出计算机能识别的程序代码,然后交由计算机执行,从而解决问题。
算法的特征
我们知道,算法包含了解决问题的一系列步骤,但并非任何步骤的集合都可以称为算法。
一个算法,应具有如下几个特征:
某些场景中,算法能够接收用户输入的数据;
算法中所有的步骤执行完毕后,至少生成1个执行结果;
算法所有步骤的执行次数必须是有限的,换句话说,算法必须能够在有限时间内执行完毕。
如何设计算法?
事实上,算法的设计从来都没有明确的标准,也不受任何编程语言的影响。
通常情况下,设计算法的过程需要考虑以下 2 个方面:
算法是为解决特定问题而设计的,因此针对不同的问题,设计的算法也不一样;
设计算法时,需要考虑实际场景中的一些限制因素,例如该算法编写的程序要求能在内存容量小的机器上运行,因此设计的算法就不能使用太多的内存空间。
这里,我们将给您列举一个实例,切实感受一下设计算法的过程。设计一种算法,计算两个数相加的和并显示执行结果,如下给您演示了一种算法:
第 1 步:接收 2 个数的值(分别赋值给 a 和 b);
第 2 步:将 a+b 的值赋值给 c;
第 3 步:输出 c 的值。
计算机只需要依次执行这 3 个步骤,就可以解决“计算两个数相加的和”的问题。
伪代码
伪代码是一种介于自然语言和编程语言之间,能更准确、高效地描述算法执行流程的语言。
用伪代码描述算法的执行流程,具有以下几个优点:
和自然语言、程序流程图相比,伪代码更接近于真实的编程语言,程序员可以很容易地将伪代码转换为程序;
使用自然语言描述算法的执行流程,很可能出现用词不当、语言表述不清等问题。伪代码可以避免出现此类问题,它的可读性、准确性都很高;
和自然语言、程序流程图相比,伪代码很容易修改;
和编程语言相比,伪代码没有严格的语法规定,所以在使用伪代码描述算法时,不需要考虑语法细节,大大降低了使用门槛。
举个例子,如下给您演示了上面实例算法对应的伪代码:
输入 a,b//接收用户输入的数据
c <- a+b//计算 a+b 的值并赋值给 c
Print c//输出 c 的值