什么是算法?
提示
- 算法定义:算法是一组明确指令,用于解决特定问题,通过一系列输入产生期望的输出。
- 好算法特点:好算法应有精确定义的输入输出,步骤清晰且明确,效率高,且用通用方式编写,不依赖特定编程语言。
- 算法示例:示例包括加法算法、寻找三个数字中的最大数、求解二次方程的根、计算阶乘、检查素数和生成斐波那契数列。
在计算机编程术语中,算法是一组用于解决特定问题的明确指令。它接受一组输入并产生期望的输出。例如,
加法算法(两个数字相加):
-
获取两个数字输入
-
使用
+
运算符加总这些数字 -
显示结果
好算法的特点
- 输入和输出应该被精确定义。
- 算法中的每个步骤都应该是清晰且不含糊的。
- 在解决问题的众多方法中,算法应该是最有效的。
- 算法不应包含计算机代码。相反,算法应该用一种可以适用于不同编程语言的方式编写。
算法示例
算法 1:加法算法(由用户输入的两个数字)
步骤 1:开始
步骤 2:声明变量 num1,num2 和 sum。
步骤 3:读取变量 num1 和 num2 的值。
步骤 4:将 num1 和 num2 相加,并将结果赋给 sum。
sum←num1+num2
步骤 5:显示 sum
步骤 6:结束
算法 2:找出三个数字中的最大数
步骤 1:开始
步骤 2:声明变量 a,b 和 c。
步骤 3:读取变量 a,b 和 c 的值。
步骤 4:如果 a > b
如果 a > c
显示 a 是最大的数字。
否则
显示 c 是最大的数字。
否则
如果 b > c
显示 b 是最大的数字。
否则
显示 c 是最大的数字。
步骤 5:结束
算法 3:求解二次方程 ax2 + bx + c = 0 的根
步骤 1:开始
步骤 2:声明变量 a, b, c, D, x1, x2, rp 和 ip;
步骤 3:计算判别式
D ← b2-4ac
步骤 4:如果 D ≥ 0
r1 ← (-b+√D)/2a
r2 ← (-b-√D)/2a
显示 r1 和 r2 作为根。
否则
计算实部和虚部
rp ← -b/2a
ip ← √(-D)/2a
显示 rp+j(ip) 和 rp-j(ip) 作为根
步骤 5:结束
```### 算法 4: 计算一个数字的阶乘
```dsa
步骤 1: 开始
步骤 2: 声明变量 n、factorial 和 i。
步骤 3: 初始化变量
factorial ← 1
i ← 1
步骤 4: 读取 n 的值
步骤 5: 重复以下步骤直到 i = n
5.1: factorial ← factorial*i
5.2: i ← i+1
步骤 6: 显示 factorial
步骤 7: 结束
算法 5: 检查一个数字是否为质数
步骤 1: 开始
步骤 2: 声明变量 n、i、flag。
步骤 3: 初始化变量
flag ← 1
i ← 2
步骤 4: 从用户那里读取 n。
步骤 5: 重复以下步骤直到 i=(n/2)
5.1 如果 n÷i 的余数等于 0
flag ← 0
转到步骤 6
5.2 i ← i+1
步骤 6: 如果 flag = 0
显示 n 不是质数
否则
显示 n 是质数
步骤 7: 结束