【问题标题】:Are lower-bounds established by reductions tight?减排确定的下限是否严格?
【发布时间】:2017-12-23 13:32:17
【问题描述】:

将问题 A 简化为问题 B 意味着问题 B 至少与 A 一样难,甚至更难。

如果我可以将排序简化为其他问题 X,我知道 X 的下限为 Omega(n log n)。 该下限是否保证是严格的下限?我怀疑它不应该是这样,因为只知道 X 至少和 A 一样难——这意味着它可能更难,因此会有不同的下限。

我的意思是说因为插入排序有一个最坏情况的紧上限 O(n^2) 是正确的,所以说它有一个最坏情况的运行时间 O 也是正确的(n^3)。这是正确的,但没有太大的实用价值——因为我们 99% 的时间都对紧边界感兴趣。

【问题讨论】:

  • “减少排序以解决其他问题”是什么意思?您的意思是某些排序算法中的子算法,例如partition 在快速排序中,merge 在合并排序中,以及 heapify 在堆排序中?
  • 计算机科学堆栈交换也可能对此感兴趣:cs.stackexchange.com

标签: algorithm computer-science complexity-theory reduction


【解决方案1】:

你说的很对,界不必紧。

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

  1. MININT 输入转换为SORTINT 输入:将MININT 的输入直接用于SORTINT
  2. SORTINT 输出转换为MININT 输出:返回已排序数组的第一个元素(假设元素按升序排序)。

在最坏情况的输入上,排序确实有 Omega(n) 的下限。这不是一个严格的界限; Omega(n lg n) 对于SORTINT 更严格。但是将MININT 减少为SORTINT 本身并不能告诉我们这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 2021-08-04
    • 1970-01-01
    相关资源
    最近更新 更多