[英]Time complexity of the following method
我正在嘗試確定以下方法的時間復雜度。 在開始我有三個for循環,它將產生m ^ 3。 我不知道如何確定,在方法結束時遞歸調用的時間復雜度是多少。
有人可以幫我弄這個嗎?
void p(int n, int m) {
int i,j,k ;
if (n > 0) {
for (i=0 ; i < m ; i++)
for (j=0 ; j < m ; j++)
for (k=0 ; k < m ; k++)
System.out.println(i+j*k) ;
p(n/m, m) ;
}
}
正如你所提到的,O(m ^ 3)是沒有附加回憶的執行。
總時間只是這一步的倍增時間。
對於n = m ^(k-1)是執行k次的步驟,因此它具有O(k * m ^ 3),其為O(ln(n)* m ^ 3)。
遵循以下步驟將允許您以正式方式推斷時間復雜度:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.