Python数据结构 算法设计
算法是一个循序渐进的过程,它定义了一组要按一定顺序执行的指令,以获得期望的输出。算法通常是独立于底层语言而创建的,也就是说,一个算法可以用一种以上的编程语言来实现。
从数据结构的角度来看,以下是一些重要的算法类别-
- 搜索 – 在数据结构中搜索一个项目的算法。
-
排序– 按一定顺序对项目进行排序的算法。
-
插入- -在数据结构中插入项目的算法。
-
更新- 在数据结构中更新一个现有项目的算法。
-
删除- 从数据结构中删除一个现有项目的算法。
算法的特点
不是所有的程序都可以被称为算法。一个算法应该具有以下特点
- 不含糊 – 算法应该是清晰和不含糊的。它的每一个步骤(或阶段),以及它们的输入/输出都应该是清楚的,并且必须导致只有一种意义。
-
输入– 一个算法应该有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步 - 开始 ADD
第2步 - 获得 a 和 b 的值
第 3步 - c ← a + b
第4步 - 显示c
第5 步 – 停止
在算法的设计和分析中,通常使用第二种方法来描述一个算法。它使分析者很容易分析算法,忽略所有不需要的定义。他可以观察到正在使用哪些操作以及流程是如何流动的。
写出 步骤号 ,是可选的。
我们设计一个算法来获得一个给定问题的解决方案。一个问题可以用多种方式解决。
因此,对于一个给定的问题,可以得出许多解决算法。下一步是分析这些拟议的解决方案算法,并实现最合适的解决方案。