
出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」
データ数nの配列をソートするアルゴリズムで、時間計算量がO(n log n)となる場合として最も適切なものを選ぶ問題。マージソートの最悪計算時間はO(n log n)。
代表的なソートアルゴリズムの、最良・平均・最悪の時間計算量を比較する問題。
① 計算量: マージソート=最悪でもO(n log n)、クイックソート=平均O(n log n)・最悪O(n²)、挿入ソート=最良O(n)、選択ソート=常にO(n²)
② 「最悪でもO(n log n)」はマージソート
③ ②
マージソートは、配列を2分割して再帰的にソートし、併合する。分割の深さがlog n、各段階の併合がO(n)なので、最悪の場合でもO(n log n)である。したがって②が最も適切である。
O(n log n)で安定なのはマージソート(最悪でも)。クイックソートは平均O(n log n)、最悪O(n^2)。単純な挿入(最悪)・バブル・選択ソートは、O(n^2)。
キーワード: ソート、計算量、マージソート、クイックソート、シェルソート、単純挿入ソート、選択ソート、情報工学部門