Math 我似乎无法从我的课本中找出这个大O符号
是给出的原始代码Math 我似乎无法从我的课本中找出这个大O符号,math,big-o,Math,Big O,是给出的原始代码 作者声明时间复杂度为c*(n-1)*n/2。我同意这一点。但他接着说,它减少到了O(n),我被难住了,我原以为是O(n^2)。我真的看不到它-你至少需要O(n^2)。如果你愿意,你可以写O(n^100),但我想你不会 首先写|(n/2)(n-1)| 1) 10=0 (1/n)*(log(2M)+(x-1)*(n))>=0是我们现在的声明 (1/n)对于n>1为正 当2M>1时,对数(2M)为正 log(n)为正,因为n>1 (x-1)对于x小于1的任何值都是负值,因此x>=1,
作者声明时间复杂度为c*(n-1)*n/2。我同意这一点。但他接着说,它减少到了O(n),我被难住了,我原以为是O(n^2)。我真的看不到它-你至少需要O(n^2)。如果你愿意,你可以写O(n^100),但我想你不会 首先写
|(n/2)(n-1)| 1
)
10=0
(1/n)*(log(2M)+(x-1)*(n))>=0
是我们现在的声明
(1/n)对于n>1为正
当2M>1时,对数(2M)为正
log(n)为正,因为n>1
(x-1)对于x小于1的任何值都是负值,因此x>=1,使我们的方程O(n^2)
,或者
log(2M)>=(1-x)*log(n)
对于订单(n),x=0,留下log(2M)>=log(n)
。当它缓慢膨胀时,它是无限的,所以找不到M的值
看起来你不会得到一个n阶方程。如果不是这样的话,请指出我错在哪里我想你可能想要
而不是是的,谢谢!我编辑了它。我想我同意你的看法——根据维基百科(权威信息的伟大来源),你可以把你的函数写成n^2/2-n/2-->1/2(n^2+)-->1/2(n^2+n^2)-->n^2
在倒数第二步中,假设对于n的任何值(因此n必须是正的),n^2>=n
。查看j>i
并思考循环中的逻辑。虽然我看不出它是O(n),但我绝对不相信它是O(n^2)。严格地说,我想你需要log(2M)>(1-x)*log(n)
,不管x的值是多少。在x=1的情况下,满足M>0.5。
for(int i=n; i>0; i--) {
for(int j=n; j>i; j--) {
System.out.println("Algorithm analysis"); }
}