簡體   English   中英

算法復雜度n *(m + n)^ 2

[英]algorithm complexity n*(m+n)^2

我寫了如下代碼:

for( i = 0 ; i < n; i++){
    for( j = 0; j < m + i; j++){
        for( k = 0; k < m + i; k++){
            dosomething();
         }
     }
}    

因此平均時間復雜度為O(n *(m + n / 2)*(m + n / 2))? 大O最壞的情況是什么? 我很困惑。

最壞情況,最佳情況和平均情況的算法復雜度都相同。

對於大小(n,m)的每個輸入,它總是執行相同數量的指令。

  • 最壞的情況是您將對某些輸入n,m進行的最大可能步數。 這是O(n*(n+m)^2) ,通過顯示中間和內部循環比從n+m/2n+m花費更多的時間(因為它在O(n*(n+m)^2) O(n*(n+m)^2)可以容易地證明。 O(n*(n+m)^2) ,然后是算法。
  • 同樣-對於最佳情況,對於給定的n,m ,必須采取相同數量的步驟。
  • 平均情況是預期的操作次數,將在大小為n,m的輸入上執行-但此處的確切輸入並不重要,僅大小為nm因此將保持不變

有條理地,使用Sigma表示法將為您提供以下內容:

在此處輸入圖片說明

暫無
暫無

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

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