各コード行がどのように処理されるかをどのように計算しますか?大規模なO操作数
例。
Algorithm find2D (A,x)
arrLength = A.length
for j <- 1 to arrLength – 1 do
for k <- 1 to arrLength – 1 do
if A[j][k] = x then
return true
increment k
increment j
return false
私はこの疑似コードを思いついた。だから私は、コードの各行が取る操作の数をどのように数えるかは本当に分かりません。
jを設定する必要があるので、最初のループのように1 + n回の演算があります.jをarrLength - 1と比較するとn-1回ループします。したがって、n + 1 + 1 + 1の演算がn + 1回の演算になります。
したがって、2番目のループでは、ネストしても同じことになります。
私は、A[j][k] = x
の比較で少し混乱しています。
ありがとうございました。あなたは、アレイ内のすべての要素の上に、(ログを掛け、あなたが繰り返し二つにアレイを分割するたびにN
掛けループ各時間について
:
通常、比較は1回の操作と見なされ、配列内のすべての項目を他のすべての項目と比較するため、比較はn^2回(最悪の場合)と呼ばれます。 – Lithium