Python - 算法设计


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

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

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

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

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

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

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

算法的特点

并不是所有的过程都可以称为算法。算法应具有以下特征 -

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

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

  • 输出- 算法应该有 1 个或多个明确定义的输出,并且应该与所需的输出相匹配。

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

  • 可行性- 在可用资源下应该可行。

  • 独立- 算法应该有逐步的方向,它应该独立于任何编程代码。

如何编写算法?

编写算法没有明确的标准。相反,它依赖于问题和资源。算法从来都不是为了支持特定的编程代码而编写的。

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

我们以一步一步的方式编写算法,但情况并非总是如此。算法编写是一个过程,是在问题域明确之后执行的。也就是说,我们应该了解我们正在设计解决方案的问题领域。

例子

让我们尝试通过一个例子来学习算法编写。

  • 问题- 设计一个算法来添加两个数字并显示结果。

步骤 1 - 开始

步骤 2 - 声明三个整数abc

步骤 3 - 定义ab的值

步骤 4 - 添加ab的值

步骤 5 - 将步骤 4的输出存储到c

步骤 6 - 打印c

步骤 7 - 停止

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

步骤 1 - 开始添加

步骤 2 - 获取ab的值

步骤 3 − c ← a + b

步骤 4 - 显示 c

步骤 5 - 停止

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

步骤号, 是可选的。

我们设计一种算法来解决给定问题。一个问题可以通过多种方式解决。

一个问题多种解决方案

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