算法和伪代码的核心区别是什么?

What is the core difference between algorithm and pseudocode?

如问题所述"What is the core difference between algorithm and pseudocode?"。

算法是用数学术语表示的东西。它包括分析、复杂性考虑(最佳、平均和最坏情况分析等)。伪代码是程序的人类可读表示。

算法是您可以执行的事情(一系列步骤)。伪代码是描述算法的符号。

来自 Wikipedia :

Starting from an initial state and initial input (perhaps empty), the instructions describe a computation that, when executed, proceeds through a finite number of well-defined successive states, eventually producing "output" and terminating at a final ending state. 

使用伪语言可以实现一种算法,而无需使用诸如C.

之类的编程语言

伪语言的一个例子是Flow Charts

算法

算法是根据要执行的操作和执行这些操作的顺序来解决问题的过程。算法仅仅是解决问题所采取的一系列步骤。这些步骤通常是 "sequence," "selection, " "iteration," 和一个 case-type 语句。

伪代码

伪代码是一种人工的非正式语言,可帮助程序员开发算法。伪代码是一个 "text-based" 细节(算法)设计工具。

伪代码的规则相当简单。所有显示 "dependency" 的语句都要缩进。这些包括 while、do、for、if、switch。下面的例子将说明这个概念。

我认为所有其他答案都提供了有用的解释和定义,但我要给出我的答案。

算法是想法如何从一些输入中获得一些结果。这是一个抽象的概念;算法本身不是material的东西,更像是一种想象或演绎,一种只存在于头脑中的东西。从广义上讲,任何从其他事物中得到某些事物的步骤序列都可以称为算法。例如,如果你的电脑屏幕很脏,"spraying some glass cleaner on it and wipe it with a cloth"可以说是一种算法,解决如何从脏屏中获取干净屏幕的问题。重要的是要注意问题本身(获得干净的屏幕)和算法(用布和清洁剂擦拭)之间的区别;通常,有几种不同的算法可以解决同一个问题。复杂性的概念是算法本身固有的,而不是问题或算法的特定实现或执行。

伪代码是一种语言来表达算法。因为如前所述,算法只是概念,我们需要用一些东西来表达它们并向其他人解释它们。伪代码是许多计算机科学算法的便捷方式,因为它通常是明确的、易于阅读的并且与许多编程语言有些相似。但是,也可以使用特定的编程语言,如 C 或 Java 来表达和算法(对于不熟悉该语言的人来说不太方便)。在其他情况下,伪代码可能不是表达算法的最佳方式;例如,许多图形和树算法可以用绘图或图表更容易地解释。在前面的示例中,清洁屏幕的算法可能更适合用英语等自然语言来表达,因为它对于这种情况来说足够简单和具体。

显然,术语经常根据上下文随意使用和交换,没有必要对此吹毛求疵,但我认为弄清区别很重要。算法不会仅仅因为它是用 Python 而不是伪代码编写的就不再是算法。伪代码只是表达它们的一种方便而广泛的交流工具。