0
通過我的復發,我試圖解決這個復發研究 你可以查一下找到CN和時間複雜度
public static int java(int N) {
if (N == 1)
return 1;
return (java(N/2) + java(N/2));
}
我覺得這是方程
C(1) = 1
CN = 2CN/2 + 1
和複雜度爲O(log N)
你能幫我查一下嗎
通過我的復發,我試圖解決這個復發研究 你可以查一下找到CN和時間複雜度
public static int java(int N) {
if (N == 1)
return 1;
return (java(N/2) + java(N/2));
}
我覺得這是方程
C(1) = 1
CN = 2CN/2 + 1
和複雜度爲O(log N)
你能幫我查一下嗎
public static int java(int N) {
if (N == 1)
return 1;
return 2 * java(N/2);
}
而不是調用兩次相同的,只是乘以2就沒有需要重新計算它對於相同的輸入。
複雜性是O(log N)
,因爲您每次都將問題分解爲因子2
。
這看起來不錯,是正確的。 – YoungHobbit
@Am_I_Helpful你能告訴我你從哪裏得到n個 – Mira
@Mira - 我,現在,不是我的控制之下。不知道我身上發生了什麼,我很抱歉。它必須是O(log n)。 –