次の手順はシェルソートによる整列を示している。データ列 7, 2, 8, 3, 1, 9, 4, 5, 6 を手順(1)〜(4)に従って整列するとき、手順(3)を何回繰り返して完了するか。ここで、[ ]は小数点以下を切り捨てた結果を表す。 〔手順〕 (1) "H←[データ数÷3]"とする。 (2) データ列を、互いにH要素分だけ離れた要素の集まりから成る部分列とし、それぞれの部分列を、挿入法を用いて整列する。 (3) "H←[H÷3]"とする。 (4) Hが0であればデータ列の整列は完了し、0でなければ(2)に戻る。
シェルソートの間隔Hは3分の1ずつ縮み、9件なら3→1→0
選択肢
- ア2
- イ3
- ウ4
- エ5
正解と解説
正解:ア 2
データ数は9なので、まずH=[9÷3]=3で手順(2)を実行する。次に手順(3)でH=[3÷3]=1となり、Hは0でないので手順(2)へ戻って整列する。再び手順(3)でH=[1÷3]=0となり、手順(4)で完了する。したがって手順(3)を実行した回数は2回である。
選択肢ごとの解説
- ア正しい。H=3→1、H=1→0の2回で0に到達し処理が終わる。
- イ3回とするとHが0になった後にもう一度実行する計算になり、手順(4)の終了条件と合わない。
- ウ4回は、除数3で1未満に落ちる速さを見誤った場合の値である。
- エ5回はHを1ずつ減らす(間隔列を線形に縮める)と誤解した場合の値である。
同じ分野の他の問題
- 異なるn個のデータが昇順に整列された表がある。この表をm個のデータごとのブロックに分割し、各ブロックの最後尾のデータだけ…2025年度 秋期 問3
- A, B, Cの順序で入力されるデータがある。各データについてスタックへの挿入と取出しを1回ずつ行うことができる場合、デ…2021年度 春期 問2
- 自然数をキーとするデータを、ハッシュ表を用いて管理する。キーxのハッシュ関数h(x)を h(x) = x mod n と…2024年度 秋期 問3
- 各ノードがもつデータを出力する再帰処理f(ノード n)を定義した。この処理を、図の2分木の根(最上位のノード)から始めた…2024年度 春期 問3
- あるデータ列を整列したら状態0から順に状態1、2、・・・、Nへと推移した。整列に使ったアルゴリズムはどれか。 状態0 3…2023年度 秋期 問3
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。