Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 大O代数简化_Math_Data Structures_Big O - Fatal编程技术网

Math 大O代数简化

Math 大O代数简化,math,data-structures,big-o,Math,Data Structures,Big O,简化大O表达式的步骤 我们省略了所有常数 我们忽略了n的次幂 例如: O(n+5)=O(n) O(n²+6n+7)=O(n²) O(6n1/3+n1/2+7)=O(n1/2) 这些例子我说得对吗?你几乎是对的。第二条规则应该是,当n趋于无穷大时,忽略除具有最大限制的项以外的所有项。如果术语不是n的幂,例如logs或其他数学函数,这一点很重要 还值得注意的是,大O符号有时会掩盖重要的其他细节。一个O(n logn)的算法将比O(n^2)的算法具有更好的性能,但前提是输入足够大,以使那些大多数项占据

简化大O表达式的步骤

  • 我们省略了所有常数
  • 我们忽略了n的次幂
  • 例如:

    O(n+5)=O(n)

    O(n²+6n+7)=O(n²)

    O(6n1/3+n1/2+7)=O(n1/2)


    这些例子我说得对吗?

    你几乎是对的。第二条规则应该是,当
    n
    趋于无穷大时,忽略除具有最大限制的项以外的所有项。如果术语不是
    n
    的幂,例如
    log
    s或其他数学函数,这一点很重要


    还值得注意的是,大O符号有时会掩盖重要的其他细节。一个
    O(n logn)
    的算法将比
    O(n^2)
    的算法具有更好的性能,但前提是输入足够大,以使那些大多数项占据运行时间。这可能是因为对于您在特定应用程序中实际必须处理的输入大小,
    O(n^2)
    算法实际上执行得更好

    1。我们省略了所有常量

    严格来说,你不会忽略所有常数,只忽略最外层的被乘数常数。这意味着
    O(cf(n))=O(f(n))
    。加性常数也很好,因为
    f(n)
    从一些
    n
    开始,因此
    O(f(n)+c)=O(f(n))

    但在复合函数中不能忽略常量。有时可能会这样做(
    O(log(cn))
    或者甚至
    O(log(n^c))
    ),但一般不会。例如,考虑代码< > 2 ^ 2n < /代码>,可能会放弃2,并将其放入<代码> O(2 ^ n)< /代码>,这是错误的。

    2。我们忽略了n的低次幂

    是的,但请记住,您并不总是使用多项式函数。通常可以忽略任何添加的渐近下函数。假设你有
    f(n)
    g(n)
    ,当
    g(n)=O(f(n))
    时,那么
    O(f(n)+g(n))=O(f(n))

    用乘法不能做到这一点