Python Data Structure 简明教程
Python - Algorithm Design
算法是一个循序渐进的过程,它定义了一组按特定顺序执行的指令,以获得所需的输出。算法通常独立于底层语言创建,即算法可以在不止一种编程语言中实现。
从数据结构的角度来看,以下是一些重要的算法类别 -
-
Search ー 在数据结构中搜索项目的算法。
-
Sort ー 按特定顺序对项目进行排序的算法。
-
Insert ー 在数据结构中插入项目的算法。
-
Update ー 在数据结构中更新现有项目的算法。
-
Delete ー 从数据结构中删除现有项目的算法。
Characteristics of an Algorithm
并非所有程序都可以称为算法。算法应具有以下特征 -
-
Unambiguous ー 算法应清晰无歧义。它的每个步骤(或阶段)及其输入/输出都应该是清晰的,并且只能导致一种含义。
-
Input ー 算法应有 0 个或多个明确定义的输入。
-
Output ー 算法应有 1 个或多个明确定义的输出,并且应匹配所需的输出。
-
Finiteness ー 算法必须在有限的步骤后终止。
-
Feasibility ー 应该可行,并且有足够的资源。
-
Independent ー 算法应具有循序渐进的指导,它应该独立于任何编程代码。
How to Write an Algorithm?
对于编写算法,没有明确定义的标准。相反,它取决于问题和资源。算法永远不会被编写来支持特定的编程代码。
正如我们所知,所有编程语言都共享基础代码构造,如循环(do、for、while)、流程控制(if-else)等。这些通用构造可用于编写算法。
我们按部就班编写算法,但并不总是如此。算法编写是一个过程,在问题域定义明确后执行。也就是说,我们应该了解问题域,并针对该问题域设计解决方案。
Example
我们尝试通过示例来学习算法编写。
-
Problem − 设计一种算法来对两个数字进行加法并显示结果。
step 1 − 开始
step 2 − 声明三个整数 a 、 b 和 c
step 3 − 定义 a 和 b 的值
step 4 − 对 a 和 b 的值进行加法
step 5 − 将步骤 4 的输出存储到 c
step 6 − 打印 c
step 7 − 结束
算法告诉程序员如何对程序进行编码。或者,算法可以写成 −
step 1 − 开始加法
step 2 − 获取 a 和 b 的值
step 3 − c ← a + b
step 4 − 显示 c
step 5 − 结束
在算法的设计和分析中,通常使用第二种方法来描述算法。这使得分析员能够轻松地分析算法,而忽略所有不需要的定义。他可以观察正在使用什么操作以及流程如何进行。
编写 step numbers 是可选的。
我们设计了一个算法来解决给定问题。一个问题可以用多种方法解决。
因此,可以为给定的问题导出许多求解算法。下一步是分析那些建议的求解算法并执行最适合的解决方案。