本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

令和3年度 技術士第一次試験問題【専門科目】

V−3

データ数nの配列をソートするアルゴリズムにおいて、時間計算量がO (nlogn) となる場合として、最も適切なものはどれか。

@ クイックソートの最悪計算時間

A 挿入ソートの最悪計算時間

B マージソートの最悪計算時間

C バブルソートの平均計算時間

D 選択ソートの平均計算時間


正解

B


解説

@ クイックソートは、中間的な基準値を決めて、それよりも大きな値を集めた区分と、小さな値を集めた区分に要素を振り分け、次に、それぞれの区分の中で同様な処理を繰り返す。最悪計算時間は O(n2) である。

A 挿入ソートは、最初の2つの要素を比較して、整列し3番目以降は、整列された範囲の中の適切な位置に挿入していく手法である。最悪計算時間は、 O(n2) である。

B 正しい。マージソートは、隣り合う配列ごとにソートとマージ (併合) を繰り返すソート方法である。例えば、61734825は、以下の順に整列される。
16 37 48 25 ⇒
1367 2458 ⇒
12345678

C バブルソートは、隣り合う要素を比較して、大小の順が逆であれば、それらの要素を入れ替えるという操作を繰り返す。平均計算時間は、O(n2) である。

D 選択ソートは、データの中から最小値 (最大値) を探し、配列の左端からと交換しながら、整列する手法である。平均計算時間は、O(n2) である。

V−2 目次 V−4