簡體   English   中英

O(N + m)與O(NM)之間的復雜度計算差異

[英]Complexity computational difference between O(N+m) and O(NM)

在下面的算法中,我無法理解為什么復雜性是O(N + M),由codility.com檢查工具計算,而不是O(NM)。 我認為它是O(NM),因為兩個迭代一個嵌套到另一個迭代。

function solution($N, $A) {
// write your code in PHP7.0
$counter=[];
$max=0;

foreach($A as $value){
    if($value >= 1 && $value <= $N){
        isset($counter[$value-1]) ? $counter[$value-1]++ : $counter[$value-1] = 1;
        if($counter[$value-1] > $max){
            $max = $counter[$value-1];

            }
        }
    if($value == $N+1){
        for($i = 0; $i<$N; $i++){
            $counter[$i]=$max;
            }
        }
    }
return $counter;
}

由於我還沒有真正理解這兩種復雜性之間的差異,有人能給我兩個簡單的算法來展示這兩種復雜性嗎?

如果A數組中的所有值都等於N+1 ,則counter數組將被填充M=Length(A)次,因此最壞的情況是O(N*M) ,如果A內容沒有特殊限制。

暫無
暫無

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

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