【问题标题】:About big O notation definition关于大 O 符号定义
【发布时间】:2016-06-21 21:40:53
【问题描述】:

我在一本关于算法的书中看到了这句话:

O -notation 表示函数在常数因子内的上限

什么意思?

【问题讨论】:

  • 在谷歌中输入“big o notation”。阅读你能找到的一切。如果有不明白的地方,请提出问题。

标签: algorithm notation


【解决方案1】:

g(n) 另一个以 n 为参数的函数。例如g(n) = n; g(n)=nlogn 等。

f(n) = O(g(n))

那么存在常数 c 和 k 使得对于所有 n >= k, f(n)

这意味着,在一条实线上,存在一个数 k,其中存在一个常数 c,对于每个 n >= k, f(n)

不太正式(不太真实):f 的增长速度不会超过 c 乘以 g。

【讨论】:

    【解决方案2】:

    这只是对 big-O 符号的数学定义的尝试性英文描述。如果我们有 f(n) = O(g(n)),那么存在常数 c 和 k,使得对于所有 n >= k,f(n)

    我相信常数因子指的是c。

    【讨论】:

    • 我对什么是 g(n)、c 和 k 感到有些困惑?你能解释一下吗?
    • @MohammedAshour f(n) 是某个输入 n 的函数(通常,“运行算法所需的时间”作为“输入大小”的函数。)例如,f (n) 可能是“确定一个数字是否在 n 个数字的排序列表中所需的时间”。 g(n) 是一个(通常)更简单的函数,我们将其与 f(n) 进行比较,以评估其性能。 c 和 k 的东西是描述关系的正式方式:存在 c 和 k 使得一旦输入大于 k,f(n) 将始终小于 c*g(n)。
    【解决方案3】:

    O-记法表示

    Big-O 指的是一种描述...的方式

    函数的上限

    ..一个“最坏的情况”,一个函数可以根据其输入增长多快...

    在一个常数因子内”。

    ..只保证估计不会无限期地发散(即,有一些数字k 这样,无论您输入什么输入,实际函数都不会比 Big-O 估计差k 倍)

    这有帮助吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多