実行時間に関する課題で問題があります。
問題文は次のとおりです。「イザベルは、整数 n の配列 A の値を合計する興味深い方法を持っています。ここで、n は 2 のべき乗です。彼女は A の半分のサイズの配列 B を作成し、B[i] を設定します。 = A[2i] + A[2i+1], for i=0,1,…,(n/2)-1. B のサイズが 1 の場合、彼女は B[0] を出力します. そうでない場合、彼女は A をB, そしてプロセスを繰り返します. 彼女のアルゴリズムの実行時間は?」
これは O(log n) または O(n) と見なされますか? 最終結果が得られるまで配列を半分に分割し続けるため、O(log n) を考えています。O(log n) の基本は、データ構造全体を走査しないことです。ただし、合計を計算するには、配列内の各要素にアクセスする必要があるため、O(n) である可能性があると思います。これを理解するための助けをいただければ幸いです。