簡體   English   中英

以下方法的時間復雜度

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM