我需要找到這個遞歸算法的複雜性,所以,我有3個遞歸算法,只是想知道它們的大O符號。我想我有這些算法中的2個的解決方案,只是想檢查一下社區。大O符號 - 遞歸函數
int f1(int n)
{
if (n<= 1)
return (1);
else
return (n *f1(n-1))
}
我認爲這是O(n)的解決方案。
int f2 (int n)
{
if(n<=1)
return(1);
else
return(n*f2(n/2))
}
我覺得這個解決方案是爲O(log 2(N))
int f3
{
int x, i;
if(n <= 1)
return 1;
else
{
x = f3 (n/2);
for(i = 1 ; i <= n ; i++)
x++;
return x;
}
}
什麼是這個遞歸算法的複雜性,我沒有這個算法的解決方案,能夠你幫我?
通過「他們的大O符號」,你的意思是他們的時間複雜性或者他們結果的增長順序? – meowgoesthedog
我認爲你需要時間複雜性。另外,編輯你的函數f3,它不會帶任何參數 –
[Master-Theorem](https://en.wikipedia.org/wiki/Master_theorem)是解決更復雜的問題的常用方法,像最後一個你的問題。 – Paul