以下のコードの基本操作を数える必要があります。
public static int findmax(int[] a, int x) {
int currentMax = a[0];
for (int i = 1; i < a.length; i++) {
if (a[i] > currentMax) {
currentMax = a[i];
}
}
return currentMax;
}
基本的な操作 (変数に値を代入するなど) には の値が与えられることを理解しています1
。したがって、ここでは、プリミティブ操作のアカウントへの割り当てa[0]
が実行されます。currentMax
1
for ループ内: に割り当てる1
とi
、 も考慮され1
ます。とi < a.length
、 とi++
はn - 1
それぞれ (すなわち2(n-1)
) です。しかし、私はそのif
声明をどのように処理するかについて混乱しています。最悪のケースを探していることは承知しています (そのため、if
そのブロック内にネストされた条件とステートメントを実行する必要があります)。しかし、これが原始的な操作の観点からは何なのかわかりません。