-1
我目前正在做一些關於大O和T(N)的作業,並且遇到過幾個問題。我插入了像教授所說的數字,並提出每個循環運行多少次,但我無法弄清楚如何從這些信息中推導出T(n)和Big O.我看過整個網站,但似乎無法找到任何幫助。這些是一些未分配的問題,但與我正在努力解決的問題非常相似。大O和T(N)混淆
如果你可以一步一步地找出如何去尋找Big O和T(n),那會非常有幫助。謝謝你的時間。
for (int i = 0; i < n; i++)
for (int j = 0; j < i * i; j++)
cout << j << endl;
i=1 runs 1 time
i=2 runs 4 times
i=3 runs 9 times
i=4 runs 16 times
for (int i = n; i >= 0; i -= 2)
cout << i << endl;
n=10 runs 6 times
n=8 runs 5 times
n=6 runs 4 times
n=4 runs 3 times
n=2 runs 2 times
for (int i = 0; i < n; i++)
for (int j = i; j > 0; j /= 2)
cout << j << endl;
i=16 runs 5 times
i=8 runs 4 times
i=4 runs 3 times
i=2 runs 2 times
你是指'Theta(n)'? – Barmar
@Barmar很可能不是。 'T(n)'表示對大小爲'n'的問題執行算法的時間。這是一個經常用來描述遞歸算法的符號。例如。 'T(n)= 2 * T(n/2)+ c'意味着你可以通過將問題分解成一半大小加上一些恆定時間的兩個問題來解決問題,例如計算中間值或某物。它用於獲得算法的「O」。 https://en.wikipedia.org/wiki/Master_theorem – luk32