📜  算法,伪代码和程序之间的区别

📅  最后修改于: 2021-04-23 21:49:41             🧑  作者: 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. 虽然算法通常是用自然语言或普通英语编写的,但伪代码是以类似于高级编程语言的结构的格式编写的。另一方面,程序允许我们用特定的编程语言编写代码。

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