什么是最优和效率之间的区别?

3
有人能区分最优性和效率吗?如果可能的话,请为每个术语提供定义。

1
这是一个广泛的话题,也充满了意见。它可能不适合在SO上讨论。你接受的答案在某种程度上是正确的,但它远远不够。整本书都可以写关于这个话题。 - Jim Mischel
1个回答

8
在这两种情况下,都有一个标准。在编程或算法中,它们通常指以下其中之一:操作、时间或内存以及衡量的方法。
最优解通常在算法中被标记为OPT,意味着是根据标准的最佳解决方案。这意味着,不存在更好的解决方案。请注意!可能存在多个OPT解决方案!
高效本身并不代表什么,但可以与比较器结合使用。它表示你可以说一个算法比另一个算法更高效,这意味着它更快或内存消耗更小。
最高效的解决方案将是最优解决方案。

你的结论并不一定正确。在速度方面最高效的算法可能不是最优解,因为它需要几乎无限的内存。存在理论上的最优解和实际上的最优解。在现实世界中,一个效率较低的算法表现得比理论上最优的算法更好并不罕见。 - Jim Mischel
在我的大学里,我们通常说它在速度、内存或两者方面都是最优的。因此,您可以拥有速度最优和内存最优的解决方案。通常情况下,由于某些算法无法绝对比较,您无法对它们进行排序。尽管如此,我理解您的观点,并会考虑如何修改我的答案。 - xenteros

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