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 - 停止

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

编写步骤编号是可选的。

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

One Problem Many Solutions

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

广告