情報:IT
高校生
解決済み

プログラムの中の(06)でなぜNまでではなくN-1までなのか分かりません!

方法 B 3 2 4 1 比較 →2が小さい →添字の1を記録 32 41 左端の要素と,最小の値 をもつ要素を入れ替える 3 24 1 1 2 4 3 比較 →2が小さい →記録の変更なし 103 3 2 4 1 比較 →1が小さい →添字の3を記録 左端が1と確定
咬 • B 配列の要素数をNとする。 配列の左端から右端に向けて要素の値を調べ る。 最小値を格納する要素の添字を変数 base_ index に保管する。 交換する先になるデー タを変数 swap_data に保管する。 保存している値より小さな値が見つかったと きは、その要素の添字を base_index に保 存する。 最後に, swap_data と, 最小値を格納してい る要素の値 (Result_index [base_index]) を入れ替える。 これをプログラムに表現すると、以下となる。 |方法Bのプログラム (01) Result_list = [13.55, 14.05, 13.40, 12.87, 13.02, 13.80, 13.15, 13.60, 12.45, 13.75] (02) N = 10 (03) iを0からN-1まで1ずつ増やしながら繰り返す: (04) | base_index = i data = Result_list[i] (05) | swap_d なにこれ!! (06) i+1 から N- から=1ま まで1ずつ増やしながら繰り返す: (07)|もしResult_list[base_index] > Result_list [j] ならば (08) base_index = j (09) | Result_list[i] (10) 小ループ =Result_list[base_index] 大ループ Result_list [base_index] = swap_data (11) 表示する (Result_list)
プログラミング

回答

✨ ベストアンサー ✨

データ数はN個(N番目まで)ですが、最初のカウントが0なので最後はN-1になります
また、データ番号(要素の添字)は 0,1,2,…,N-1です
分かりましたか

ーーーーー
質問に関係ありませんが、「(03) iを1からN-2まで・・・」としてもよいです。
(N-1は右端なので比較する数字が更に右側にはないため)

ぴんく

わかりやすい回答ありがとうございます!

この回答にコメントする
疑問は解決しましたか?