投稿する

予想問題集より [5192]

 まきさん(No.1) 
かんたん予想問題集より質問です
予想問題①の問10の挿入ソートで
1回目は2,3,1,5,4となりますが
2回目がちょっと不安です。
array←2,3,1,5,4
for(i,3~arrayの要素数,1) 
i=3の時
tmp←array[3] 
1
j←i
3  3
while((j>1) and (array[j-1] >tmp)
       3               3-1

   =[2]=3
array[2]←array[j-1]
                3-1=[2]
j←j-1
2  3
array[j]←tmp
      2   1
よってarray={2,1,3,5,4}

となりウとなってしまいますが、なぜ間違っているのか分かりません
ご教授お願い致します。
2023.11.28 21:08
電タックさん(No.2) 
FE ブロンズマイスター
その書籍を持っていないので断片的の予測になってしまいますが
途中のwhileが2回行われるはずですがそこが1回で終わらせているからではないでしょうか?

最初>2・3・1
から
while1回目で>2:3:3
while2回目で>2:2:3
となってwhileを抜けた時(今回であればインデックス1)が挿入ポイントになるアルゴリズムとなっていると思います。
2023.11.28 21:46
 まきさん(No.3) 
ありがとうございます。
何か腹落ちしなくてモヤモヤしていたので、whileの意味を理解してないのか…ショックですがやり直します
2023.11.28 21:55
nanzouさん(No.4) 
array[2]←array[j-1]
                3-1=[2]
ではなく
array[3]←array[j-1]
                3-1=[2]
になると思います!
2023.11.28 22:17
 まきさん(No.5) 
皆さまありがとうございます。
この違和感を大切にします。挿入ソート見直します
2023.11.29 12:18
 まきさん(No.6) 
やり直ししました。
電タックさん、なんぞうさんの言う通り出来ました。ありがとうございました
2023.11.29 20:53
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop