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ずつ増やす)が正しいと考えたのですが、どなたか教えて下さると助かります。
2024.03.28 15:37
 すずらんさん(No.2) 
すみません。
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ずつ増やす)

です。
2024.03.28 16:38
 すずらんさん(No.4) 
jjon-comさん
ご回答ありがとうございます。
参考書にはこのように記載されていたため、困っておりました。
納得しました。ありがとうございます。
2024.03.28 17:06
返信投稿用フォーム

お名前

顔アイコン


本文(コミュニティガイドライン⇱を順守して適切な投稿を心がけましょう)

投稿削除用のパスワード(20文字以内)

投稿プレビュー
※CBT試験では出題内容の公開が禁止されているため、直接的・間接的を問わず、出題内容や難易度を尋ねる質問は厳禁です。
※宣伝や迷惑行為を防止するため、当サイトとIPAサイト以外のURLを含む文章の投稿は禁止されています。

投稿記事削除用フォーム

投稿No. パスワード 
© 2010-2024 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop