从技术上讲,这两个词之间是否存在区别,还是可以互换使用?它们都或多或少地描述了解决问题的逻辑步骤顺序。不是吗 那么,为什么我们要使用两个这样的词来表达相同的意思呢?
或者,如果它们不是同义词,那么区别它们是什么?在什么情况下,我们应该使用伪代码一词还是算法一词?
从技术上讲,这两个词之间是否存在区别,还是可以互换使用?它们都或多或少地描述了解决问题的逻辑步骤顺序。不是吗 那么,为什么我们要使用两个这样的词来表达相同的意思呢?
或者,如果它们不是同义词,那么区别它们是什么?在什么情况下,我们应该使用伪代码一词还是算法一词?
Answers:
维基百科对算法的定义:
在数学和计算机科学中,算法是一种有效方法,表示为用于计算函数的定义明确的指令的有限列表。算法用于计算,数据处理和自动推理。
从纯数学公式到复杂图形,可以使用多种方式描述算法,而无需使用伪代码。
伪代码描述了如何在不了解语法细节的情况下实现算法。
因此,它们并不是真正的同义词。
尽管伪代码似乎比算法更接近代码,但实际上,伪代码不是那么正式,它是一个更高级的描述。例如,您可以将象棋计算机描述为伪代码,如下所示:
是的,这是伪代码,它是一个很好的起点,但可以掩盖许多细节。它没有解决实现上的困难和变体,但是最大的好处是,它使您可以将整个情况概念化,而不必解决所有细节。
您可以修改它,再添加一个级别,如下所示:
现在,您可以为每个主要步骤编写伪代码,例如“列出黑人的法律行动清单”,如下所示:
现在,您可以看到伪代码的强大功能在于它能够一次性显示整个情况,然后允许您逐段处理细节。缺点是任何步骤都不是确定的简单步骤。
算法通常采用这些步骤之一,并以一种符号语言详细说明各种数据结构,以便您可以有效地实现该步骤的目标。
例如,get_legal_moves(board, color)
值得进行算法设计:
get_legal_moves(board, color):
for i,j in board_dimensions
if piece_at i,j is of color
if piece type is KNIGHT
add the following to the next moves list:
location i+1 j+2, i-1 j+2... etc
if piece type is rook
add locations:....
您可以看到该算法必须非常精确才能有用。
它确保了几件事:首要目标是毫无错误地实现目标。这些步骤非常详细并且可以机械化地执行,并且这些步骤足够小,您可以对其重新排序以提高完成任务的效率(速度)。
根据我的经验,伪代码始终由职能人员(拥有流程的人员)编写,以表示适用于流程,模块或子系统的业务规则。
算法是一组明确的逻辑语句,用于解决尽可能具体的任务。
Pseudo表示单&代码可能是一条指令。此处Pseudo-code表示用于轻松理解计算机编程语言的语句...有助于分析编程代码。。其中,算法是解决问题的指令的有限逻辑步骤。