簡體   English   中英

確定時間復雜度

[英]Determine the time complexity

有人可以幫助確定此代碼的時間復雜度。 這只是 O(1) 嗎? 如果不是,有人可以幫忙解釋一下嗎? 我不是 100% 確定我的答案,所以我需要第二個意見,看看這個 function 是否為 O(1)。

    public static void secMax(int[] arr)
    {
        int n = arr.length - 1;
       

        if (some condition not relate to n)
        {
           
            if(arr[a] * arr[b] > temp)
            {
                //print
            }
            else
            {
                //do something
            }
        }
        else
        {
            if(arr[y] * arr[x] > second)
            {
                //something
            }
            else
            {
                //something else
            }
        }
        
    }

它是 O(1)。 您沒有任何遍歷數組的循環。 而且你沒有任何遞歸調用。 您的方法只有很少的 if/else 條件。 如果您仔細檢查,您的方法只會執行固定數量的操作,並且不會因輸入數組長度而異。 所以時間復雜度是恆定的。

它是 O(1)。 該程序只是簡單地通過幾個條件語句從上到下流動。 沒有代碼塊執行超過一次,因此它具有恆定的復雜性。

時間復雜度為 O(1),因為您不執行任何循環來遍歷參數數組,也不執行遞歸調用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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