当前位置: 首页 > 文档资料 > Python 数据结构 >

Algorithm Design

优质
小牛编辑
126浏览
2023-12-01

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

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

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

  • Sort - Sort特定顺序对项目进行Sort算法。

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

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

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

算法的特征

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

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

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

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

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

  • Feasibility - 利用现有资源应该可行。

  • Independent - 算法应具有逐步指导,这应该独立于任何编程代码。

如何编写算法?

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

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

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

例子 (Example)

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

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

<b>step 1</b> − START
<b>step 2</b> − declare three integers <b>a</b>, <b>b</b> & <b>c</b>
<b>step 3</b> − define values of <b>a</b> & <b>b</b>
<b>step 4</b> − add values of <b>a</b> & <b>b</b>
<b>step 5</b> − store output of <u>step 4</u> to <b>c</b>
<b>step 6</b> − print <b>c</b>
<b>step 7</b> − STOP

算法告诉程序员如何编写程序代码。 或者,算法可以写成 -

<b>step 1</b> − START ADD
<b>step 2</b> − get values of <b>a</b> & <b>b</b>
<b>step 3</b> − c ← a + b
<b>step 4</b> − display c
<b>step 5</b> − STOP

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

编写step numbers是可选的。

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

一个问题很多解决方案

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