HOME»基本情報技術者試験掲示板»選択ソートについて
投稿する
選択ソートについて [5374]
すずらんさん(No.1)
とある問題集を行っているのですが、選択ソートの例のプログラムとして
前提:配列の要素番号は0から
for(iを1からdataの要素数-2まで1ずつ増やす)
min←1
for (jをi+1からdataの要素数-1まで1ずつ増やす)
if(data[min] > data[j])
min←j
endif
endfor
data←minとjの入れ替えの関数を使用
endfor
return data
という風になっていたのですが、
外ループの部分、for(iを1からdataの要素数-2まで1ずつ増やす)
だと配列要素番号0の部分が並び変えられないのでは?と思っています。
for(iを0からdataの要素数-2まで1ずつ増やす)が正しいと考えたのですが、どなたか教えて下さると助かります。
前提:配列の要素番号は0から
for(iを1からdataの要素数-2まで1ずつ増やす)
min←1
for (jをi+1からdataの要素数-1まで1ずつ増やす)
if(data[min] > data[j])
min←j
endif
endfor
data←minとjの入れ替えの関数を使用
endfor
return data
という風になっていたのですが、
外ループの部分、for(iを1からdataの要素数-2まで1ずつ増やす)
だと配列要素番号0の部分が並び変えられないのでは?と思っています。
for(iを0からdataの要素数-2まで1ずつ増やす)が正しいと考えたのですが、どなたか教えて下さると助かります。
2024.03.28 15:37
すずらんさん(No.2)
すみません。
min←1
は間違いで
min←i です。
min←1
は間違いで
min←i です。
2024.03.28 15:40
jjon-comさん(No.3)
★FE ゴールドマイスター
要素が0番目から始まる配列dataであるなら
for(iを0からdataの要素数-2まで1ずつ増やす)
min←i
for (jをi+1からdataの要素数-1まで1ずつ増やす)
要素が1番目から始まる配列dataであるなら
for(iを1からdataの要素数-1まで1ずつ増やす)
min←i
for (jをi+1からdataの要素数まで1ずつ増やす)
です。
for(iを0からdataの要素数-2まで1ずつ増やす)
min←i
for (jをi+1からdataの要素数-1まで1ずつ増やす)
要素が1番目から始まる配列dataであるなら
for(iを1からdataの要素数-1まで1ずつ増やす)
min←i
for (jをi+1からdataの要素数まで1ずつ増やす)
です。
2024.03.28 16:38
すずらんさん(No.4)
jjon-comさん
ご回答ありがとうございます。
参考書にはこのように記載されていたため、困っておりました。
納得しました。ありがとうございます。
ご回答ありがとうございます。
参考書にはこのように記載されていたため、困っておりました。
納得しました。ありがとうございます。
2024.03.28 17:06