IPA過去問ドリル

平成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)に戻る。

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

正解:ア

解説

データ数は9個なので,最初のH=[9/3]=3です。手順(2)でH=3として整列後,手順(3)でH=[3/3]=1となり,Hが0でないため(2)に戻ります。次にH=1として整列後,手順(3)でH=[1/3]=0となり,Hが0になったため終了します。したがって手順(3)は2回実行されます。

選択肢ごとの解説

  • 正しい。H=3→1,H=1→0と,手順(3)は合計2回実行されます。
  • 誤り。Hの更新回数を1回多く数えた値です。
  • 誤り。初期のH算出(手順(1))まで手順(3)の実行回数に含めてしまった場合の値です。
  • 誤り。さらに多く数えすぎた値であり,実際は2回で終了します。
応用情報技術者の過去問を演習モードで解く