Python - 算法设计

算法是一个循序渐进的过程,它定义了一组要按特定顺序执行的指令以获得所需的输出。 算法通常是独立于底层语言而创建的,即一个算法可以用多种编程语言实现。

从数据结构的角度来看,以下是一些重要的算法类别 −

  • 搜索 − 在数据结构中搜索项目的算法。

  • 排序 − 按特定顺序对项目进行排序的算法。

  • 插入 − 在数据结构中插入项目的算法。

  • 更新 − 更新数据结构中现有项目的算法。

  • 删除 − 从数据结构中删除现有项目的算法。


算法的特征

并不是所有的程序都可以称为算法。 一个算法应该具有以下特征 −

  • 明确 − 算法应该清晰明确。 它的每个步骤(或阶段)及其输入/输出都应该清楚,并且必须只有一个含义。

  • 输入 − 一个算法应该有 0 个或多个明确定义的输入。

  • 输出 − 一个算法应该有 1 个或多个明确定义的输出,并且应该与期望的输出相匹配。

  • 有限性 − 算法必须在有限数量的步骤后终止。

  • 可行性 − 在可用资源的情况下应该是可行的。

  • 独立 − 算法应该有逐步的指导,应该独立于任何编程代码。


如何编写算法?

编写算法没有明确定义的标准。 相反,它取决于问题和资源。 算法永远不会被编写为支持特定的编程代码。

众所周知,所有编程语言都共享基本代码结构,如循环(do、for、while)、流程控制(if-else)等。这些通用结构可用于编写算法。

我们以循序渐进的方式编写算法,但并非总是如此。 算法编写是一个过程,在问题域定义明确后执行。 也就是说,我们应该知道我们正在为其设计解决方案的问题域。

示例

让我们尝试通过示例学习算法编写。

  • 问题 − 设计一个算法将两个数字相加并显示结果。

步骤 1 − START

步骤 2 − declare three integers a, b & c

步骤 3 − define values of a & b

步骤 4 − add values of a & b

步骤 5 − store output of step 4 to c

步骤 6 − print c

步骤 7 − STOP

算法告诉程序员如何编写程序。 或者,该算法可以写成 −

步骤 1 − START ADD

步骤 2 − get values of a & b

步骤 3 − c ← a + b

步骤 4 − display c

步骤 5 − STOP

在算法的设计和分析中,通常采用第二种方法来描述算法。 它使分析人员可以轻松地分析忽略所有不需要的定义的算法。 可以观察正在使用的操作以及流程的流动情况。

编写步骤编号是可选的。

我们设计一个算法来解决给定问题。 一个问题可以用不止一种方法来解决。

一个问题多种解决方案

因此,可以针对给定问题推导出许多解决算法。 下一步是分析那些提出的解决方案算法并实施最合适的解决方案。