Python - 算法设计



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

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

  • Search − 在数据结构中搜索项目的算法。
  • Sort − 按特定顺序对项目进行排序的算法。
  • Insert − 在数据结构中插入项目的算法。
  • Update − 更新数据结构中现有项目的算法。
  • Delete − 从数据结构中删除现有项目的算法。

算法特征

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

  • 明确 − 算法应清晰明确。它的每个步骤(或阶段)及其输入/输出都应该清晰,并且必须只导致一种含义。
  • 输入 − 算法应具有 0 个或多个定义明确的输入。
  • 输出 − 算法应具有 1 个或多个明确定义的输出,并且应与所需的输出匹配。
  • 有限性 - 算法必须在有限数量的步骤后终止。
  • 可行性 - 在可用资源下应该是可行的。
  • 独立 − 算法应具有分步指导,该指导应独立于任何编程代码。

如何编写算法?

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

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

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

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

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

  • 第 1 步 - 开始
  • 第 2 步 - 声明三个整数a,b和c
  • 第 3 步 - 定义 A 和 B 的值
  • 第 4 步 - 添加 A 和 B 的值
  • 第 5 步 - 将第 4 步的输出存储到 C 中
  • 第 6 步 - 打印 C
  • 第 7 步 - 停止

算法告诉程序员如何编写程序

或者,该算法可以写成 -

  • 第 1 步 - 开始添加
  • 第 2 步- 获取 A 和 B 的值
  • 第 3 步 - C ← A + B
  • 第 4 步 - 显示 C
  • 第 5 步 - 停止

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

编写 步骤编号 是可选的。

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

一个问题,多种解决方案

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