選択ソートについて
すずらんさん
(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さん
★FE ゴールドマイスター
(No.3)
要素が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
広告
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
広告