第2種情報処理技術者試験 2000年度 = 平成12年度・秋期 午前 問13

 次の手順はシェルソートによる整列を示している。データ列“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トップページへ