技術士 第一次試験 基礎科目 2群 情報・論理 練習問題 第4問: 整列(ソート)のアルゴリズムの時間計算量に関する記述として、最も適切なものはどれか。ただし、n は整列するデータの件数とする。
基礎科目 2群 情報・論理
– / 12 解いた
第4問
整列(ソート)のアルゴリズムの時間計算量に関する記述として、最も適切なものはどれか。ただし、n は整列するデータの件数とする。
解答と解説を先に見る
先に見ると、この問題は今回は育ちません。
正解: 2. マージソートは、最悪の場合でも O(n log n) の時間で整列を終える
「マージソートは、最悪の場合でも O(n log n) の時間で整列を終える」が適切です。NIST Dictionary of Algorithms and Data Structures(DADS)は、マージソートをデータを 2 つに分けてそれぞれを再帰的に整列し、併合する方法とし、実行時間を Θ(n log n) としています。
Θ は上下からの評価なので、最悪の場合も O(n log n) です。クイックソートは、DADS で最悪の場合 Θ(n²)、通常は O(n log n) とされ、ピボットの選び方によっては n² に比例する時間がかかります。
挿入ソートは要素の移動のため O(n²) とされ、常に O(n) ではありません。バブルソートは任意のデータで O(n²) で、最悪の場合に O(n log n) にはなりません。
選択ソートは残りから最小のものを探して置くことを繰り返すため、実行時間は Θ(n²) で、整列済みでも O(n) にはなりません。出題範囲は IPA 基本情報技術者試験シラバス Ver.9.2 の「整列・併合・探索のアルゴリズム」と「計算量」に当たります。
関連キーワード: ソート・計算量・マージソート・クイックソート
模試 (30問)
この問題が解けたら、本試験はどうですか?本番形式で、ほかの科目もまとめて確かめる
本番形式の模擬試験で実力チェックPremium (月980円)Premium (ご利用中)制限時間 2時間
広告