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