算法的有穷性是指 算法工程师是干嘛的

2024-09-0802:07:55生活经验1

算法是一步一步解决问题的精确描述,它代表了一种系统性的策略来处理问题。简而言之,它是一个输入明确、输出明确的过程,可以在有限时间内完成。若算法有缺陷或不适合某个特定问题,则运行它将无法解决问题。不同的算法可以以不同的时间、空间消耗和效率执行同样的任务。算法的效率可以用空间复杂度和时间复杂度来衡量。

一个良好的算法应具备以下五个关键特性:

A、有限性:算法必须在执行有限数量的步骤后终止

B、确定性:算法中的每个步骤都必须有明确的定义

C、输入项:算法可以有 0 个或多个输入,用于表征问题的初始状态。0 个输入表示算法本身定义了初始条件

D、输出项:一个算法有一个或多个输出,反映了对输入数据的处理结果。没有输出的算法没有任何意义

E、可行性:算法中执行的任何计算步骤都必须可分解为基本的、可执行的操作。换句话说,每个步骤都可以在有限时间内完成(也称为有效性)

以上是算法的定义和特性,以下是几种常用算法及其应用示例:

1. 累加与累乘

累加与累乘是一个常见的算法类别,涉及到基于当前结果不断地添加或乘以一个数字。例如,计算 1+2+3+4+…..+n、计算某个序列的前 n 项和或计算一个级数的近似值

2. 求最小和最大值

求解数据集合中最小值和最大值的算法类似,可以使用 "比较法"。以求最大值为例,我们可以将第一个元素作为最大值,然后依次与其他元素进行比较,将找到的更大的数字替换为最大值,如下所示

 

3. 枚举法

枚举法也被称为穷举法,它包括测试所有可能的方案,以找出满足特定条件的结果。例如,求解 "百鸡百钱" 问题或找出 x y=100 的所有组合,如下:

4. 递推和迭代

4.1 递推:我们可以使用递推算法或迭代算法将一个复杂的问题分解为一个不断重复执行的简单过程。这两种算法的共同点是,它们使用前一个结果来生成下一个结果。不同的是,递推算法不涉及变量的自我更新,而迭代算法在每次循环中使用变量的新值替换它的原始值。

说明:解决递推问题需要满足两个条件:初始条件和递推条件。

4.2 迭代

迭代法也称为重复法,它涉及根据变量的现有值不断生成新值的持续过程。迭代算法是计算机解决问题的一种基本技术。它利用计算机的高速执行能力,让计算机重复执行一组指令。在每次执行这组指令时,变量都会从其旧值更新为新值。