【问题标题】:Knapsack Algorithm and Convex Hull背包算法和凸包
【发布时间】:2016-07-08 11:59:02
【问题描述】:

我正在学习算法分析课程,并且我在 java 中有算法作业。我写了这个程序,它运行得很好。但是,我的老师想报告与最坏情况渐近结果的比较以获得加分。这是什么意思?我该如何比较?第一个是凸包算法,第二个是背包算法。我的凸包复杂度 n^3 它有最坏的情况。为什么他想要最坏的情况?我的背包算法复杂度是 (n*2^n)。你能帮帮我吗?

【问题讨论】:

  • 你已经解决了 O(n log n) 的背包决策问题?恭喜,你什么时候领取图灵奖?提示:背包的决策问题是 NP 难的......这也可能暗示了为什么最坏情况分析很重要。
  • 这实际上是两个问题。问题到底是什么?为什么研究最坏情况的渐近行为有意义?
  • 确切的问题是测量不同点数的运行时间并观察收敛行为。与最坏情况的渐近结果进行比较。你的结果是否证实了最坏情况的分析? @Codor

标签: java algorithm


【解决方案1】:

你被要求比较算法的渐近复杂度并用一些数据证实它。这应该让您大致了解复杂性和实际运行时之间的联系。

他们要求最坏的情况,因为通常这是您可以为您拥有的解决方案提供的保证。例如,如果算法在第一次尝试时偶然发现解决方案,您的背包可能会在 n=1000 时立即工作,但您不能保证它适用于该大小的任何输入(花费的时间太长)。

现在,你已经有了复杂性,所以 O(n^3)

【讨论】:

    猜你喜欢
    • 2011-09-03
    • 2017-06-15
    • 2023-03-21
    • 2011-10-16
    • 2013-03-28
    • 1970-01-01
    • 2016-06-10
    • 2013-01-21
    • 2017-02-22
    相关资源
    最近更新 更多