HOME»基本情報技術者試験掲示板»平成19年  春  問4
投稿する

平成19年  春  問4 [4741]

 まきさん(No.1) 
某問題集より御教授して頂きたいです。
挿入ソートの問題で設問1のbまで分かりました。
Cの答えA[Idx2+1]←Tmpとありますが
なぜですか?
bの段階でA[Idx2+1]←A[Idx2]  1つずつずれるのはわかるのですが
これって上書きするイメージでしょうか
教えてください。よろしくお願いいたします。
2023.01.04 20:56
boyonboyonさん(No.2) 
FE シルバーマイスター
この投稿は投稿者により削除されました。(2023.01.05 16:08)
2023.01.05 16:08
boyonboyonさん(No.3) 
FE シルバーマイスター
並び替えの途中の段階で考えます。
説明のため、A[i]を丸数字で表します。
A[i]=6ならば⑥のように考えてください。
□はスペースのかわりです。

現在の状態:①②③⑤⑥⑦⑩④⑧⑨

Idx1=7まで終わって、次はIdx1=8のループに入ります。

□□□□□□□8□□□□Idx1
1234567□□□□□Idx2
①②③⑤⑥⑦⑩④⑧⑨□□④をtmpに代入
□□□□□□④□□□□⑩>④なので⑩で右の値を上書き
①②③⑤⑥⑦⑩⑩⑧⑨□になり、Idx2を1へらす。6
□□□□□④□□□□□⑦>④なので⑦で右の値を上書き
①②③⑤⑥⑦⑦⑩⑧⑨□になり、Idx2を1へらす。5
□□□□④□□□□□□⑥>④なので⑥で右の値を上書き
①②③⑤⑥⑥⑦⑩⑧⑨□になり、Idx2を1へらす。4
□□□④□□□□□□□⑤>④なので⑤で右の値を上書き
①②③⑤⑤⑥⑦⑩⑧⑨□になり、Idx2を1へらす。3
□□④□□□□□□□□③≦④なのでLoop←falseでループを抜け
Idx2+1=4の所をTmpで上書きし
①②③④⑤⑥⑦⑩⑧⑨  になります。

Idx1=9,10  と続きます。
2023.01.05 16:09
 まきさん(No.4) 
大変分かりやすい解説をありがとうございます。
Cだけ頭の中でうごかせなくてわからなかったので嬉しいです
2023.01.05 21:30
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010-2024 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop