私はこの質問に苦労しています。だから私は例を使って説明します。ネストされたfor-loopsでは、j = i + 1 vs j = 1?
私は以下の配列を持っていると言ってください:A = {5,8,1,3,2,6}はサイズn = 6でA [0 ... 5]でインデックスされています。
そして、左から右への走査で、各値とそれに隣接する値とを比較するための何らかのスキャンを実行したいと思います。ネストされたforループを実行する次の2つのコードスニペットの違いは何ですか?
// snippet 1, using i to take the first and j to take whatever is next to i.
for i <- 0 to n-2 do
for j <- i+1 to n-1 do
// do the scanning, comparing, etc....
//snippet 2 using i to take the first and j to take the second.
for i <- 0 to n-2 do
for j <- 1 to n-1 do
// do the scanning, comparing, etc....
私はそれらがまったく同じで、私がやったペン/ペーパーテストで何の違いも見つけられないと思います。 1つはありますか?
(A[0], A[0])
と(A[n - 1], A[n - 1])
を除く '(I + 1)...(N-1)' '1とは異なる値を生成すべきであるとして(A[i], A[i])
扱わスニペット.. (n-1) 'となる。 –@ cricket_007詳しく教えてください。どうやって? – Callat
最初のループで 'i == j'のときはインスタンスが決してありません –