過去問解きまくり研究所 ホーム

平成31年度 春期 午前 問6

アルゴリズム

シェルソートに関する問題

次の手順はシェルソートによる整列を示している。データ列 7, 2, 8, 3, 1, 9, 4, 5, 6 を手順 (1) 〜 (4) に従って整列するとき,手順 (3) を何回繰り返して完了するか。ここで,〔 〕は小数点以下を切り捨てた結果を表す。

〔手順〕

1. "H ← 〔データ数÷3〕" とする。
2. データ列を,互いに H 要素分だけ離れた要素の集まりから成る部分列とし,それぞれの部分列を,挿入法を用いて整列する。
3. "H ← 〔H÷3〕" とする。
4. H が 0 であればデータ列の整列は完了し,0 でなければ (2) に戻る。

答えと解説を見る

✓ これが正解ア2

解説

H を 3 で割り、0 になるまで進めます。

シェルソートは、離れた位置にある要素どうしを部分列に分けて整列し、間隔 H を狭めながら整えていく方法です。設問は間隔 H を 3 で割って更新する手順を何度通るかを尋ねています。要素数が 9 なので初回は H を 9 割る 3 で 3 とし、この H で部分列を整えます。次に手順が H を 3 で割ると 1 になるので、これで一度目です。1 の間隔でもう一度整えたあと、また 3 で割って 0 になり、これで二度目となります。0 になった時点で判定手順が完了と判断して終わるため、割り算を通る回数は二度です。

ほかの選択肢はなぜ違うのか

出典:平成31年度 春期 応用情報技術者試験 午前 問6

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)