在triangular时运行的算法的正确大O表示法是什么?这是一个例子:
func(x):
for i in 0..x
for j in 0..i
do_something(i, j)
我的第一直觉是O(n²)
,但我并不完全确定。
答案 0 :(得分:15)
是,N *(N + 1)/ 2,当你删除常数和低阶项时,会得到N平方。
答案 1 :(得分:1)
是的,O(n^2)
绝对是正确的。如果我没记错的话,O总是上限,所以O(n^3)
IMO也应该是正确的,就像O(n^n)
或其他什么一样。但是O(n^2)
似乎是最容易被扣除的最紧张的。{/ p>
答案 2 :(得分:0)
如果以数学方式考虑,您计算的三角形区域为((n+1)^2)/2
。因此,这是计算时间:O(((n + 1)^ 2)/ 2)
答案 3 :(得分:0)
对于该代码,计算时间增加因子N *(N + 1)/ 2。这基本上是O(N ^ 2)。
答案 4 :(得分:0)
当输入从N增加到2N时 然后算法的运行时间将从t增加到4t
因此,运行时间与输入大小的平方成正比
所以算法是O(n ^ 2)
答案 5 :(得分:-2)
O(!n)处理因子计算(三角时间)的情况。
它也可以表示为O(n ^ 2),这似乎有点误导,因为执行的数量总是将是O(n ^ 2)的一半。执行。