【发布时间】:2013-06-28 15:45:27
【问题描述】:
我实现了一个算法来解决一个 NP-hard 优化问题。该算法的复杂度为O(sum (k = 1 to n) of k^n)。我知道O(n^(n+1)) 是一个上限,但我不知道它是否是一个紧的。该算法的严格上限是:O(n^n)、O(n^(n+1)) 还是其他?
谢谢
【问题讨论】:
标签: algorithm time-complexity computation-theory
我实现了一个算法来解决一个 NP-hard 优化问题。该算法的复杂度为O(sum (k = 1 to n) of k^n)。我知道O(n^(n+1)) 是一个上限,但我不知道它是否是一个紧的。该算法的严格上限是:O(n^n)、O(n^(n+1)) 还是其他?
谢谢
【问题讨论】:
标签: algorithm time-complexity computation-theory
答案是O(sum<sub>k=1</sub><sup>n</sup> k<sup>n</sup>) = O(n<sup>n</sup>)。为了验证这一点,请注意,累积大小为O(n<sup>n</sup>) 的误差项可以用并行积分代替总和。 (总和是阶跃函数的积分。遮蔽阶跃函数和连续函数之间的差异,然后将它们滑过。由于该函数是单调递增的,因此这些误差的总和适合最后一项。)求解确定的积分,你最终评估x<sup>n+1</sup>/(n+1)n和1。这得出了一个 O(n<sup>n</sup>) 术语与您之前的相同大小的错误术语。
【讨论】: