アルゴリズムとプログラミング
基本情報技術者試験 科目A免除 修了試験 200907 実施分 問5
次の手順はシェルソートによる整列を示している。データ列 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) に戻る。
答えを選ぶ
出典:基本情報技術者試験 科目A免除 修了試験 200907 実施分 問5(問題文は IPA の公開問題。解説は当サイト作成)
答えと解説を見る
正解:ア
覚える知識
シェルソートの手順トレース
シェルソートは間隔Hを縮めながら部分列を挿入法で整列し、H=1の整列後に終了する。
この問題で必要なこと
データ数9からH=[9/3]=3で整列し、手順(3)でH=1、再度整列後に(3)でH=0となり完了する。手順(3)の実行は2回。
ひっかけ
H=1の整列を終えた後の(3)を数え忘れる、または整列回数と混同する。
この知識の出題:本試験系 0 回・免除試験 1 回(公開問題での観測値)