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) である。