i=n;
while (i>=1) {
--x=x+1;
--i=i/2;
}
此代码的运行时间是多少?此代码示例的时间复杂度
AO(N^2)
BO(N^3)
CO(N^4)
DO(log n)的
EO(2^N)
我相信这是选项D
这是为了修改。不做作业
i=n;
while (i>=1) {
--x=x+1;
--i=i/2;
}
此代码的运行时间是多少?此代码示例的时间复杂度
AO(N^2)
BO(N^3)
CO(N^4)
DO(log n)的
EO(2^N)
我相信这是选项D
这是为了修改。不做作业
这不会终止的,而条件是
i>=i
但是,假设您想键入
i>=1
答案将是log(n)。
做这行i = i/2;把我们带到O(logn)? – 2011-05-25 12:10:32
是的。在第k次循环迭代中,你实际上将原来的'i'除以'2^k'。 – YXD 2011-05-25 12:41:19
如果你改变了,而条件i>=1
因为它代表的复杂性你的信念是正确的是O(INFINITY)
我不相信你。你有三个问题,其中两个问题,以及一个关于快速排序的问题。 – 2011-05-25 12:01:34
你确定虽然条件正确吗?这是一个无限循环,因为'i'总是至少等于'i'。另外,如果它是修订,那么你已经有了答案; – Lazarus 2011-05-25 12:01:52
' while(i> = i)'相当于'while(true)',所以我想你犯了一个错误,不是吗? – Fezvez 2011-05-25 12:02:48