各アルゴリズムの特徴一覧

利点・欠点・適用場面の詳細比較

アルゴリズム 利点 欠点 適用場面
バブルソート • 実装が非常に簡単
• 安定ソート
• インプレースソート
• 計算量が悪い O(n²)
• 大規模データで非実用的
• 交換回数が多い
• 教育目的
• 極小規模データ
• ほぼ整列済みデータ
クイックソート • 平均的に高速
• インプレースソート
• キャッシュ効率が良い
• 最悪計算量 O(n²)
• 不安定ソート
• 再帰でスタック使用
• 汎用的な用途
• ランダムデータ
• 速度重視の場面
マージソート • 最悪でも O(n log n)
• 安定ソート
• 並列化しやすい
• 追加メモリ O(n)
• 小規模データで遅い
• ランダムアクセス多
• 安定性が必要
• 外部ソート
• 並列処理環境
ヒープソート • 最悪でも O(n log n)
• インプレースソート
• 追加メモリ不要
• 不安定ソート
• キャッシュ効率悪い
• 実装がやや複雑
• メモリ制約環境
• 最悪計算量保証
• 組み込みシステム
ティムソート • 適応的アルゴリズム
• 最悪でも O(n log n)
• 部分整列に強い
• 実装が複雑
• 追加メモリ必要
• オーバーヘッド有
• 実世界のデータ
• 標準ライブラリ
• 汎用的な用途
基数ソート • 線形時間 O(nk)
• 非比較ソート
• 大規模データで高速
• 整数限定
• 追加メモリ必要
• キー長に依存
• 整数ソート
• 固定長文字列
• 大規模データ

💡 アルゴリズム選択は、データ特性・制約条件・要求性能のバランスが重要

9 / 11