予想問題集より
まきさん
(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}
となりウとなってしまいますが、なぜ間違っているのか分かりません
ご教授お願い致します。
予想問題①の問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
電タックさん
★FE ブロンズマイスター
(No.2)
その書籍を持っていないので断片的の予測になってしまいますが
途中のwhileが2回行われるはずですがそこが1回で終わらせているからではないでしょうか?
最初>2・3・1
から
while1回目で>2:3:3
while2回目で>2:2:3
となってwhileを抜けた時(今回であればインデックス1)が挿入ポイントになるアルゴリズムとなっていると思います。
途中のwhileが2回行われるはずですがそこが1回で終わらせているからではないでしょうか?
最初>2・3・1
から
while1回目で>2:3:3
while2回目で>2:2:3
となってwhileを抜けた時(今回であればインデックス1)が挿入ポイントになるアルゴリズムとなっていると思います。
2023.11.28 21:46
まきさん
(No.3)
ありがとうございます。
何か腹落ちしなくてモヤモヤしていたので、whileの意味を理解してないのか…ショックですがやり直します
何か腹落ちしなくてモヤモヤしていたので、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]
になると思います!
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日経過したスレッドへの投稿はできません。
広告