什么是算法?
在本教程中,我们将借助示例了解什么是算法。
在计算机编程术语中,算法是一组定义明确的指令,用于解决特定问题。它需要一组输入并产生所需的输出。例如,
两个数相加的算法:
- 取两个数字输入。
- 使用
+
运算符对两个数字进行运算。 - 输出计算结果。
好算法的品质
- 算法的输入和输出应该明确定义。
- 算法中的每一步都应该清晰明确。
- 对于一个特定的问题,算法应该是解决问题是最有效的方法。
- 算法不应和具体的计算机代码相关。相反,算法的编写方式应使其可以在不同的编程语言中使用。
算法示例
这里列出了一些常见的简单的算法的步骤。
算法 1:求用户输入的两个数的和
- 开始
- 声明变量
num1
、num2
和sum
。 - 读取值
num1
和num2
。 - 将
num1
和num2
相加并将结果赋值给sum
,即:sum = num1+num2
。 - 显示总和
sum
。 - 停止
算法 2:求三个数中最大的数
一下算法展示了如何求 a
、b
和 c
3 个数中最大数的算法。
-
开始
-
声明变量
a
、b
和c
。 -
读取变量
a
、b
和c
。 -
伪代码:
If a > b If a > c a 是最大的 Else c 是最大的 Else If b > c b 是最大的 Else c 是最大的
-
停止
算法 3:求一个数的阶乘
阶乘是一个数学概念,一个正整数的阶乘是所有小于或等于此数的所有正整数的积。比如的 5 的阶乘是 120。即: 5! = 5*4*3*2*1 = 120
。
以下展示了求一个数 n
的阶乘的算法:
-
开始
-
声明变量
n
、factorial
和i
。 -
初始化变量:
factorial = 1
,i = 1
。 -
读取
n
的值 -
重复下面的步骤直到
i = n
:factorial = factorial * i
;i = i + 1
;
-
显示阶乘
-
停止
算法 4:检查一个数是否为质数
质数(Prime number),又称素数,指在大于 1 的自然数中,除了 1 和该数自身外,无法被其他自然数整除的数(也可定义为只有 1 与该数本身两个正因数的数)。除了质数外,其他大于 1 的自然数被称为合数。
下面展示了判断一个数 n
是否为质数的算法:
-
开始
-
声明变量
n
、i
、flag
。 -
初始化变量:
flag = 1
,i = 2
。 -
从用户处读取
n
。 -
重复以下步骤直到
i = (n / 2)
- 如果
n ÷ i
的余数等于0
,那么flag = 0
, 转到第 6 步 i = i + 1
- 如果
-
如果 flag = 0 显示
n
不是素数,否则显示n
是素数。 -
停止
算法 5:输出 1000 以内的斐波那契数列
斐波那契数列是一个数学上常用的数列,由 0 和 1 开始,之后的每个数是由它之前的两数相加而得出。比如:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987
下面展示了输出 1000 以内的斐波那契数列的算法:
-
第 1 步:开始
-
第 2 步:声明变量 first_term、second_term 和 temp。
-
第三步:初始化变量:
first_term = 0
,second_term = 1
。 -
第 4 步:显示
first_term
和second_term
-
第 5 步:重复下面的步骤,直到 second_term ≤ 1000
temp = second_term
second_term = second_term + first_term
first_term = temp
- 显示 second_term
-
第 6 步:停止