data-structures - 大哦符号运行时间

标签 data-structures big-o

你如何解决这个问题?你是否先得到 c ,它是两个函数的比率,然后用该比率找到 n 的范围?你怎么知道 ?请解释一下我真的迷路了,谢谢。

示例1:证明运行时间T(n) = n^3 + 20n + 1 为O(n^3) 证明:根据 Big-Oh 定义,

如果 T(n) ≤ c·n^3 对于某些 n ≥ n0 ,则 T(n) 为 O(n^3) 。

让我们检查一下这个条件:

如果 n^3 + 20n + 1 ≤ c·n^3 则 1 + 20/n^2 + 1/n^3 <=c 。

因此, Big-Oh 条件适用于 n ≥ n0 = 1 且 c ≥ 22 (= 1 + 20 + 1)。较大 n0 的值会导致较小的因子 c(例如,对于 n0 = 10 c ≥ 1.201 等),但 无论如何,上述说法都是有效的。

最佳答案

我认为你看到的技巧是你没有考虑大数字。因此,我们举一个反例:

   T(n) = n^4 + n

假设我们认为它是 O(N^3) 而不是 O(N^4)。你可以看到的是

   c = n + 1/n^2

这意味着常量c实际上是c(n),一个依赖于n的函数。将 N 取为一个非常大的数字表明,无论如何,c == c(n) 都是 n 的函数,因此可以不是O(N^3)

N趋向无穷大时,你想要的东西是有限的,除了常数之外的一切都保持不变:

   c = 1 + 1/n^3

现在你可以轻松地说,它仍然是c(n)!随着 N 变得非常非常大,1/n^3 变为零。因此,在 N 非常大的情况下,在 O(N^4) 时间内声明 T(n) 的情况下,c = = 1 或者它是一个常数!

这有帮助吗?

关于data-structures - 大哦符号运行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21054370/

相关文章:

c++ - LeetCode问题:改进执行时间而不使用哈希吗?

c - 代码 θ(nLogn) 的时间复杂度如何?

c++ - QuadTree 用于 2D 碰撞检测

python - 属性错误: 'NoneType' object has no attribute height in BST pythons height

algorithm - 嵌套循环的运行时间

algorithm - 是否有可能有两个有效的大 O 运行时依赖于不同的变量?

javascript - 如何使用 JavaScript 查找 10 GB 或更大文件中的所有唯一单词并启用搜索?

for-loop - 用于 n^3 嵌套 For 循环的大 O 表示法

用字母创建图表

c# - 在 C# 中存储一组字符串列表的有效方法