Algorithm 如何证明一项任务是用最少的命令完成的

Algorithm 如何证明一项任务是用最少的命令完成的,algorithm,Algorithm,有没有可能表明一项任务是用一种语言中所需的最少命令或代码行来完成的,很明显,如果你能用一个命令来完成一项任务,这是最短的方法,但这只适用于像加法这样的任务,如果我说创建了一个排序算法,我怎么知道有没有更快的方法来执行这项任务呢?首先,最少的代码行数并不一定意味着最少的命令数。(即处理器命令)由于前者在算法意义上并不重要,我假设您正在尝试找出后者 在这一点上,有多种技术可以证明完成某些复杂任务所需的最少步骤数(而不是命令数)。找到完成任务所需的最小步骤数并不直接对应于最小命令数;但是,修改这些技术

有没有可能表明一项任务是用一种语言中所需的最少命令或代码行来完成的,很明显,如果你能用一个命令来完成一项任务,这是最短的方法,但这只适用于像加法这样的任务,如果我说创建了一个排序算法,我怎么知道有没有更快的方法来执行这项任务呢?

首先,最少的代码行数并不一定意味着最少的命令数。(即处理器命令)由于前者在算法意义上并不重要,我假设您正在尝试找出后者

在这一点上,有多种技术可以证明完成某些复杂任务所需的最少步骤数(而不是命令数)。找到完成任务所需的最小步骤数并不直接对应于最小命令数;但是,修改这些技术以找出解决问题所必需的最小命令数应该是相对简单的。请注意,这些技术可能不一定会为每个复杂任务生成一个下限,能否找到下限取决于具体任务

顺便提一下,您的问题中提到的(基于比较的)排序是有这种证明方法的任务之一,即决策树。您可以在许多源上找到该方法的更详细描述,包括,但该方法只是试图找到排序数组所需的最少比较次数。这是一项众所周知的技术,其核心在于证明基于比较的排序算法的时间复杂度下限为
NlogN