アルゴリズムとプログラミング

基本情報技術者試験 科目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 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「整列(ソート)アルゴリズムの比較」で学ぶ