算法是用于解决特定问题的明确定义的步骤的过程。 算法是有限的逻辑或指令集,它是为了完成某个预定义的任务而编写的。 它不是完整的程序或代码,它只是问题的解决方案(逻辑),可以使用流程图或伪代码表示为非正式描述。
下面给出了主要的算法类别:
- 排序:为按特定顺序排序项目而开发的算法。
- 搜索:为搜索数据结构内的数据项而开发的算法。
- 删除:为从数据结构中删除现有元素而开发的算法。
- 插入:为在数据结构中插入项目而开发的算法。
- 更新:为更新数据结构中的现有元素而开发的算法。
算法的性能是基于以下属性来衡量的:
- 时间复杂度:它是表示程序运行到完成所需时间的一种方式。
- 空间复杂度:它是算法在执行过程中所需的内存空间量。 在有限的内存可用和多用户系统的情况下,需要空间复杂性。
每个算法必须具有:
- 规范:计算过程的描述。
- 前提条件:输入条件。
- 算法的主体:一系列清晰明确的指令。
- 后置条件:输出条件。
示例:设计一个算法,将两个数字x
和y
相乘,并赋值到z
中,最后显示结果。
第1步,开始
第2步,声明三个整数x
,y
和z
第3步,定义x
和y
的值
第4步,乘以x
和y
的值
第5步,将第4
步的输出存储在z中
第6步,打印z
第7步,停止完成
或者,算法可以写成 -
第1步,开始相乘
第2步,获取x
和y
的值
第3步, z ← x * y
第4步,显示z
第5步,停止
算法的特征
算法必须遵循以下提到的特征:
- 输入:算法必须具有
0
个或明确定义的输入。 - 输出:算法必须具有
1
个或明确定义的输出,并且应与所需的输出匹配。 - 可行性:必须在有限步数后终止算法。
- 独立性:算法必须具有独立于任何编程代码的逐步指导。
- 明确无误:算法必须明确无误。每个步骤和输入/输出必须清晰,并且只能产生一个含义。