漸近解析の質問で問題が発生しています。この問題は、関数の漸近的な最悪の場合の実行時間と漸近的な予想される実行時間の両方を要求します。Random(n)は、一様分布で1からnまでの乱数を生成します(1からnまでのすべての整数が同じように発生する可能性があります)。
Func2(A, n)
/* A is an array of integers */
1 s ← A[1];
2 k ← Random(n);
3 if (k < log2(n)) then
4 for i ← 1 to n do
5 j ← 1;
6 while (j < n) do
7 s ← s + A[i] ∗ A[j];
8 j ← 2 ∗ j;
9 end
10 end
11 end
12 return (s);
3行目(if(k <log2(n))then)が関数の予想実行時間にどのように影響するのか疑問に思いました。4行目から10行目は、最悪の場合cn ^ 2の時間で実行されると思いますが、ifステートメントが原因で、予想される実行時間をどのように導き出すかがわかりません。助けてくれてありがとう!
-マット