描述与底层问题具有相同复杂性的算法的术语是什么?

时间:2011-11-06 01:14:55

标签: terminology complexity-theory

在几个月前研究项目的数据结构时,我遇到了一个我非常喜欢的术语,可以使用如下:

  

这[算法/解决方案/数据结构]是盟友最优的

意味着所引用的解决方案的时间(或空间,取决于上下文)复杂性与它解决的问题的基本复杂性相同。

例如,如果我们忽略量子计算并且在一般情况下接受排序问题是O(n log n)时间,那么就时间复杂度而言,堆排序是最合适的,因为它的复杂性是也是O(n log n),而冒泡排序不是?????盟友最优,因为O(n^2)O(n log n)更差。

我不知道我在哪里阅读它,到目前为止我还没有找到谷歌,而且无法记住它从此一直困扰着我!

2 个答案:

答案 0 :(得分:1)

也许你在谈论Asymptotically optimal algorithm

  

在计算机科学中,一种算法被认为是渐近最优的,如果粗略地说,对于大输入,它在最坏的情况下执行比最佳算法更差的常数因子(独立于输入大小)。

答案 1 :(得分:1)

你是否认为计算上最优?可能是“渐近最优”,就像另一个答案所说的那样。你所描述的似乎是大哥们:

如果一个问题已被证明至少采用f(x),则称为Omega(f(x));算法的最坏情况是big-O(g(x))。当f(x)== g(x)时,也就是说解决方案的最坏情况是问题的最佳情况,算法是big-theta(f(x))。所以heapsort,例如是theta(n * log(n))。