跳到主要内容

什么是算法?

提示
  1. 算法定义:算法是一组明确指令,用于解决特定问题,通过一系列输入产生期望的输出。
  2. 好算法特点:好算法应有精确定义的输入输出,步骤清晰且明确,效率高,且用通用方式编写,不依赖特定编程语言。
  3. 算法示例:示例包括加法算法、寻找三个数字中的最大数、求解二次方程的根、计算阶乘、检查素数和生成斐波那契数列。

在计算机编程术语中,算法是一组用于解决特定问题的明确指令。它接受一组输入并产生期望的输出。例如,

加法算法(两个数字相加):

  1. 获取两个数字输入

  2. 使用 + 运算符加总这些数字

  3. 显示结果

好算法的特点

  • 输入和输出应该被精确定义。
  • 算法中的每个步骤都应该是清晰且不含糊的。
  • 在解决问题的众多方法中,算法应该是最有效的。
  • 算法不应包含计算机代码。相反,算法应该用一种可以适用于不同编程语言的方式编写。

算法示例

加法算法(两个数字相加)

找出三个数字中的最大数的算法

求解二次方程所有根的算法

求解阶乘的算法

检查素数的算法

斐波那契数列算法

算法 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: 结束

算法 6: 找出斐波那契数列中小于 1000 的项

步骤 1: 开始
步骤 2: 声明变量 first_term、second_term 和 temp。
步骤 3: 初始化变量 first_term ← 0 second_term ← 1
步骤 4: 显示 first_term 和 second_term
步骤 5: 重复以下步骤直到 second_term ≤ 1000
5.1: temp ← second_term
5.2: second_term ← second_term + first_term
5.3: first_term ← temp
5.4: 显示 second_term
步骤 6: 结束