【发布时间】:2014-08-15 05:50:02
【问题描述】:
MyCodeSchool.com 上的优秀人士有 this introductory video on YouTube,涵盖了 Big-O、Theta 和 Omega 表示法的基础知识。
提供了以下 Big-O 表示法的定义:
O(g(n) ) := { f(n) : f(n) ≤ cg(n) },对于所有 n ≥ n0
我对方程的随意理解如下:
给定一个函数f(),它以n为输入,存在另一个函数g(),其输出总是大于或等于f()的输出——给定两个条件:
-
g()乘以某个常数c -
n大于某个下限 n0
我的理解正确吗?
此外,还提供了以下具体示例来说明 Big-O:
给定:
- f(n) = 5n2 + 2n + 1
因为以下都是真的:
- 5n2 > 2n2,对于所有
n - 5n2 > 1n2,对于所有
n
如下:
- c = 5 + 2 + 1 = 8
因此,视频得出结论,对于所有n ≥ 1,f(n) ≤ 8n2,并且 g(n) = 8n2
我想也许视频得出的结论是 n0 一定是1,因为1 是等式 8n2 = 5n2 + 2n + 1 (负三分之一也是根,但 n 仅限于整数。所以,没有骰子。)
这是为 Big-O 表示法计算 n0 的标准方法吗?
- 在您的多项式中取最大的幂因数
- 乘以时间函数中系数的总和
- 设置他们的乘积等于你的时间函数
- 从零开始
- 拒绝所有不在整数集中的根
任何帮助将不胜感激。提前致谢。
【问题讨论】:
标签: performance time big-o