是否可以显示任务是在语言中所需的最少命令或代码行中完成的,很明显,如果您可以在一个命令中执行任务,这是最短的方法,但对于像添加这样的任务,这只会是真的,如果我说创建了一个排序算法,我怎么知道存在或不存在更快的方式来执行这个任务?
答案 0 :(得分:1)
首先,最小代码行数并不一定意味着最小数量的命令。 (即处理器命令)由于前者在算法意义上并不重要,我假设你试图找出后者。
在这方面,有许多技术可以证明执行某些复杂任务所需的最少步骤数(而不是命令)。找到完成任务所需的最少步骤数并不直接对应于最小数量的命令;但是修改这些技术以找出解决问题所必需的最少命令数应该是相对微不足道的。请注意,这些技术可能不一定会为每个复杂任务产生下限,并且是否可以找到下限取决于特定任务。
顺便提一下,在您的问题中提到的(基于比较的)排序是有这种证明方法的任务之一,即决策树。您可以在许多来源(包括here)上找到有关该方法的更详细说明,但该方法只是尝试查找为了对数组进行排序而必须进行的最少次数比较。这是一个众所周知的技术,其核心是证明为什么基于比较的排序算法具有NlogN
的时间复杂度下限。