以下のコードの基本操作を数える必要があります。
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]が実行されます。currentMax1
for ループ内: に割り当てる1とi、 も考慮され1ます。とi < a.length、 とi++はn - 1それぞれ (すなわち2(n-1)) です。しかし、私はそのif声明をどのように処理するかについて混乱しています。最悪のケースを探していることは承知しています (そのため、ifそのブロック内にネストされた条件とステートメントを実行する必要があります)。しかし、これが原始的な操作の観点からは何なのかわかりません。