📜  算法、伪代码和程序的区别

📅  最后修改于: 2021-09-15 01:56:49             🧑  作者: Mango

在这篇文章中,我们将讨论最常见的误解,即算法和伪代码是同一个东西。,他们不是!
让我们先来看看定义,
算法:系统的逻辑方法,它是一个定义明确的分步程序,允许计算机解决问题。
伪代码:它是一种简单的英语编程代码的简单版本,它在以特定的编程语言实现之前使用短语为程序编写代码。
程序:它是按照编程语言的所有规则为问题编写的精确代码。

算法

算法用于以明确定义的步骤的形式为特定问题提供解决方案。每当您使用计算机解决特定问题时,应将导致解决方案的步骤正确传达给计算机。在计算机上执行算法时,将加法和减法等几种运算组合起来执行更复杂的数学运算。算法可以用自然语言、流程图等来表达。
让我们看一个例子,以便更好地理解。作为程序员,我们都知道线性搜索程序。 (线性搜索)

线性搜索算法:

1. Start from the leftmost element of arr[] and 
one by one compare x with each element of arr[]. 
2. If x matches with an element, return the index. 
3. If x doesn’t match with any of elements, return -1. 

在这里,我们可以看到如何用简单的英语解释线性搜索程序的步骤。

伪代码

它是可用于表示程序算法的方法之一。它没有任何编程语言那样的特定语法,因此不能在计算机上执行。有几种格式可用于编写伪代码,其中大多数都从C、Lisp、FORTRAN 等语言中删除了结构。

很多时候算法都是使用伪代码来呈现的,因为熟悉不同编程语言的程序员可以阅读和理解它们。伪代码允许您包含多种控制结构,例如While、If-then-else、Repeat-until、for 和 case ,这些结构存在于许多高级语言中。
注意:伪代码不是实际的编程语言。
线性搜索的伪代码:

FUNCTION linearSearch(list, searchTerm):
     FOR index FROM 0 -> length(list):
       IF list[index] == searchTerm THEN
           RETURN index
       ENDIF
       ENDLOOP
           RETURN -1
END FUNCTION 

在这里,我们没有使用任何特定的编程语言,而是以更简单的形式编写了线性搜索的步骤,可以进一步修改为适当的程序。

程序

程序是计算机要遵循的一组指令。机器不能直接读取程序,因为它只能理解机器码。但是你可以用计算机语言写东西,然后编译器或解释器可以让它被计算机理解。

线性搜索程序:

// C++ code for linearly search x in arr[].  If x 
// is present  then return its  location,  otherwise
// return -1
int search(int arr[], int n, int x)
{
    int i;
    for (i = 0; i < n; i++)
        if (arr[i] == x)
         return i;
    return -1;
}

算法 vs 伪代码 vs 程序

  1. 算法被定义为为给定问题提供解决方案的明确定义的步骤序列,而伪代码是可用于表示算法的方法之一。
  2. 虽然算法通常用自然语言或简单的英语编写,但伪代码的编写格式类似于高级编程语言的结构。另一方面,程序允许我们用特定的编程语言编写代码。

因此,如上所示,您可以清楚地看到该算法如何用于生成伪代码,该伪代码通过遵循编程语言的特定语法来创建程序代码来进一步扩展。

如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程学生竞争性编程现场课程。