Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.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
Data structures 大oh符号运行时间_Data Structures_Big O - Fatal编程技术网

Data structures 大oh符号运行时间

Data structures 大oh符号运行时间,data-structures,big-o,Data Structures,Big O,你是怎么计算出来的?首先得到c,这是两个函数的比值,然后用这个比值求出n的范围吗?你怎么知道?请解释我真的迷路了,谢谢 示例1:证明运行时间T(n)=n^3+20n+1是O(n^3) 证明:根据职业健康大定义 T(n)是O(n^3)如果T(n)≤ c·n^3对于某些n≥ 不 让我们检查一下这个条件: 如果n^3+20n+1≤ c·n^3然后是1+20/n^2+1/n^3我想你看到的诀窍是你没有想到大数字。因此,让我们举一个反例: T(n) = n^4 + n 让我们假设它是O(N^3)而

你是怎么计算出来的?首先得到c,这是两个函数的比值,然后用这个比值求出n的范围吗?你怎么知道?请解释我真的迷路了,谢谢

示例1:证明运行时间T(n)=n^3+20n+1是O(n^3) 证明:根据职业健康大定义

T(n)是O(n^3)如果T(n)≤ c·n^3对于某些n≥ 不

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


如果n^3+20n+1≤ c·n^3然后是1+20/n^2+1/n^3我想你看到的诀窍是你没有想到大数字。因此,让我们举一个反例:

   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
变为零。因此,在
O(N^4)
时间中声明
T(N)
的情况下,
c==1
或者它是一个常量


这有帮助吗?

请注意,大O符号实际上并没有告诉您任何东西的运行时间。它告诉您当要处理的项目数量增加时,某个项目的运行时间是如何增长的。我的意思是,使用某个算法的Big-O符号不会以任何方式告诉您该算法处理x元素需要多少秒/时间单位。A就Big-O表示法而言,您只保留表达式中最大/增长最快的部分,这就是为什么后面的
n^3+2n^2
表示法是
O(n^3)
。谢谢惠蒂!非常感谢你的帮助