📅  最后修改于: 2020-11-07 08:39:54             🧑  作者: Mango
算法是一个分步过程,它定义了一组指令,这些指令将以某种顺序执行以获得所需的输出。通常,算法是独立于基础语言而创建的,即,一种算法可以用一种以上的编程语言来实现。
从数据结构的角度来看,以下是算法的一些重要类别-
搜索-在数据结构中搜索项目的算法。
排序–按特定顺序对项目进行排序的算法。
插入-将项目插入数据结构的算法。
更新-更新数据结构中现有项目的算法。
删除-从数据结构中删除现有项目的算法。
并非所有过程都可以称为算法。算法应具有以下特征-
明确-算法应清晰明确。它的每个步骤(或阶段)及其输入/输出都应该明确,并且只能导致一种含义。
输入-算法应具有0个或更多定义明确的输入。
输出-算法应具有1个或多个定义明确的输出,并且应匹配所需的输出。
有限性-算法必须在有限数量的步骤后终止。
可行性-可用资源应该可行。
独立-算法应具有逐步指导,该逐步指导应独立于任何编程代码。
没有编写算法的明确定义的标准。而是取决于问题和资源。永远不会编写算法来支持特定的编程代码。
众所周知,所有编程语言都共享基本的代码结构,例如循环(do,for,while),流控制(if-else)等。这些常见的结构可用于编写算法。
我们以分步的方式编写算法,但并非总是如此。算法编写是一个过程,并且在明确定义问题域之后执行。也就是说,我们应该知道问题领域,我们正在为此设计解决方案。
让我们尝试通过一个示例来学习算法编写。
问题-设计一种算法,将两个数字相加并显示结果。
step 1 − START
step 2 − declare three integers a, b & c
step 3 − define values of a & b
step 4 − add values of a & b
step 5 − store output of step 4 to c
step 6 − print c
step 7 − STOP
算法告诉程序员如何编写程序。另外,算法可以写成-
step 1 − START ADD
step 2 − get values of a & b
step 3 − c ← a + b
step 4 − display c
step 5 − STOP
在算法的设计和分析中,通常使用第二种方法来描述算法。分析人员可以轻松地分析算法而忽略所有不需要的定义。他可以观察正在使用哪些操作以及流程如何进行。
编写步骤号是可选的。
我们设计一种算法来解决给定问题。一个问题可以通过多种方式解决。
因此,对于给定的问题,可以导出许多解决方案算法。下一步是分析提出的解决方案算法,并实施最合适的解决方案。