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

3

正如问题本身所描述的那样,“算法”和“伪代码”的核心区别是什么?


软件工程交流论坛上的相关帖子:一个相关帖子 - RBT
5个回答

4

算法

算法是一种在执行操作和按顺序执行这些操作的过程中解决问题的方法。算法只是解决问题所采取的步骤序列。这些步骤通常包括“序列”,“选择”,“迭代”和“case”语句。

伪代码

伪代码是一种人工的非正式语言,帮助程序员开发算法。伪代码是一种“基于文本”的详细(算法)设计工具。

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


2
我认为其他回答都给出了有用的解释和定义,但我将给出我的看法。
算法是如何从某些输入中获得某些结果的想法。它是一个抽象的概念;算法本身并不是一种物质,而更像是一种想象或推理,一种只存在于头脑中的东西。广义上来说,任何能够从其他事物中得到某些东西的步骤序列都可以称为算法。例如,如果你的电脑屏幕很脏,“喷一些玻璃清洁剂在上面,然后用布擦拭”可以被称为解决从脏屏幕中获取干净屏幕的问题的算法。需要注意的是问题本身(获得干净的屏幕)与算法(用布和清洁剂擦拭)之间的区别;通常,多种不同的算法可用于解决同一问题。复杂度的概念固有于算法本身,而不是问题或特定实现或执行算法。
伪代码是表达算法的语言。因为算法只是概念,我们需要使用一些东西来表达它们并向其他人解释它们。对于许多计算机科学算法来说,伪代码是一种方便的方式,因为它通常是明确无误、易于阅读并且与许多编程语言相似。但是,特定的编程语言如C或Java也可以用于表达算法(对于不熟悉该语言的人来说,这只是不太方便而已)。在其他情况下,伪代码可能不是表达算法的最佳方式;例如,许多图形和树算法可以更容易地通过绘图或图表来解释。在前面的例子中,清洁屏幕的算法可能更好地用英语等自然语言表达,因为这种语言对于这种情况来说足够简单和具体。
显然,术语经常松散使用并根据上下文交换,没有必要对此过于挑剔,但我认为有必要明确区别。算法不会因为使用Python而停止成为算法。伪代码只是一种方便和广泛使用的沟通工具,用于表达它们。

1

算法是一系列步骤,可以进行操作。伪代码是一种用于描述算法的符号表示。


0

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


0

来自维基百科

从初始状态和初始输入(可能为空)开始,指令描述了一种计算,当执行时,经过有限的定义明确的连续状态,最终产生"输出"并在最终结束状态终止。

通过使用伪语言,可以实现算法而无需使用诸如C之类的编程语言。

伪语言的一个例子是流程图


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接