次の質問があります。 アレイの数は、次のコード次の配列へのアクセス数
for (int i=0; i < n; ++i)
for (int j = i/2; j < i; ++j)
A[i] = B[j] + C[j];
のためにアクセスするしかし、私はN
の面で、ある正確にどのように多くの配列がアクセスを見つけ出すことはできませんと私は答えは思っためチルダ近似を与えますn^3
- Aはn、BとCはn^2です。
私は右のタックにいるようですか?
次の質問があります。 アレイの数は、次のコード次の配列へのアクセス数
for (int i=0; i < n; ++i)
for (int j = i/2; j < i; ++j)
A[i] = B[j] + C[j];
のためにアクセスするしかし、私はN
の面で、ある正確にどのように多くの配列がアクセスを見つけ出すことはできませんと私は答えは思っためチルダ近似を与えますn^3
- Aはn、BとCはn^2です。
私は右のタックにいるようですか?
大きなO表記の場合、N次はN^2です。
これは2つのネストされたループによるものです。
いいえ、あなたはその
のように数えることができませんあなたの配列A [] B []とC []と同じ時刻にアクセスしていますが、唯一の違いはAが回アクセスi
の位置にあることです。
および他の事、n3はないが、あなたは時間Bを行うことはできません、あなたはn
回実行する第一なので、複雑
をカウントするために、両方のfor`sを分析する必要があり、実行n/2
回秒この場合
O(nˆ2/4)
持っているか、単に
O(nˆ2)
です。実際には意味がありますが、私がそれを得られない唯一のことは、あなたが 'O(n^2/4) O(n^2/2) '? – jroy8
これは、自然数を使って作業しているために起こります。たとえば、n = 1、n = 2の場合は、2番目のループで1回の対話が行われます。この場合、インタラクションの半分は同じです。/2)/ 2 –
だからN^2の配列は、あなたのことわざにアクセスがありますか? – jroy8