応用情報技術者試験 2012年度 = 平成24年度・春期 午前 問7

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

〔手順〕
(1) [データ数÷3]→H とする。
(2) データ列を、互いにH 要素分だけ離れた要素の集まりからなる部分列とし、それぞれの部分列を、挿入法を用いて整列する。
(3) [H ÷ 3]→H とする。
(4) H が0であればデータ列の整列は完了し、0でなければ(2)に戻る。
ア 2 イ 3 ウ 4 エ 5

解答



解説

 シェルソートは、ある間隔で要素を取り出した部分列を整列し、更に間隔をつめた部分列を取り出して整列する方法です。
 本問では、データ数を3で割っていきますので、
   [9÷3]→3  3ソート(3要素離れたものをソート)
   [3÷3]→1  1ソート(1要素離れたもの=全体をソート)
と、2回のソートで全体のソートが完了します。

1回目■  H = [9÷3] = 3 → ソートを実行
        ┌─────┬─────┐       ┌─────┬─────┐     ┌─────┬─────┐    ┌─┬─┬─┬─┬─┬─┬─┬─┬─┐    ││    └─┴─┴─┴─┴─┴─┴─┴─┴─┘              ↓ をそれぞれソート    ┌─┬─┬─┬─┬─┬─┬─┬─┬─┐    ││    └─┴─┴─┴─┴─┴─┴─┴─┴─┘ ■2回目■  H = [3÷3] = 3 → ソートを実行
    ┌─┬─┬─┬─┬─┬─┬─┬─┐    ┌─┬─┬─┬─┬─┬─┬─┬─┬─┐    ││    └─┴─┴─┴─┴─┴─┴─┴─┴─┘              ↓ をソート    ┌─┬─┬─┬─┬─┬─┬─┬─┬─┐    ││    └─┴─┴─┴─┴─┴─┴─┴─┴─┘



BohYoh.comトップページへ