减少确定下限是否紧张?

时间:2017-07-18 15:17:10

标签: algorithm computer-science complexity-theory reduction

将问题A减少到问题B意味着问题B至少和A一样难,如果不是这样的话。

如果我可以减少对其他问题X的排序,我知道X的下限是Omega(n log n)。 这种下限是否保证是一个紧张的下限?我怀疑它不应该是,因为X只知道至少和A一样坚硬 - 暗示它可能更难,并且结果有不同的下限。

我的意思是,在某种意义上说,因为插入排序具有O(n ^ 2)的最坏情况紧密上限,所以说它具有O的最坏情况运行时间也是正确的。 (N ^ 3)。这是正确的,但没有太大的实际价值 - 因为我们对99%的时间都感兴趣。

1 个答案:

答案 0 :(得分:1)

你是绝对正确的,不需要紧张。

例如,考虑一个简单的例子:找到getOtherBar()整数数组中的最小整数。每次都有一个n空格和O(1)时间算法来解决这个问题。但是,这个问题减少了通过两种方式减少O(n)对整数数组进行排序的问题:

  1. O(1)输入转换为MININT输入:直接使用SORTINT的输入MININT
  2. SORTINT输出转换为SORTINT输出:返回已排序数组的第一个元素(假设元素按升序排序)。
  3. 排序肯定在最坏情况输入时具有Omega(n)的下限。这不是一个紧张的约束; Omega(n lg n)对MININT更严格。但是,SORTINTMININT的减少本身并没有告诉我们。