ソートアルゴリズム比較 — 時間、空間、安定性

すべての主要ソートアルゴリズムを並べて比較:時間計算量(最良、平均、最悪)、空間計算量、安定性、それぞれの使用場面。

Algorithms

詳細な説明

包括的なソートアルゴリズム比較

完全な比較表

アルゴリズム 最良 平均 最悪 空間 安定?
バブルソート O(n) O(n²) O(n²) O(1) Yes
選択ソート O(n²) O(n²) O(n²) O(1) No
挿入ソート O(n) O(n²) O(n²) O(1) Yes
マージソート O(n log n) O(n log n) O(n log n) O(n) Yes
クイックソート O(n log n) O(n log n) O(n²) O(log n) No
ヒープソート O(n log n) O(n log n) O(n log n) O(1) No
Tim sort O(n) O(n log n) O(n log n) O(n) Yes

いつ何を使うか

小さな配列 (n < 50): 挿入ソート。オーバーヘッドが低く、キャッシュ効率が良い。

汎用: Tim sort(PythonとJavaのデフォルト)。適応的、安定、最悪O(n log n)。

メモリ制約: ヒープソート。インプレースでO(n log n)保証。

小範囲の整数: カウンティングソートまたは基数ソート。

安定性

安定ソートは等しい要素の相対的な順序を保持します。複数キーでソートする場合に重要です。

ユースケース

ソートアルゴリズムの選択はソフトウェアエンジニアリングにおける基本的な決定です。本番コードのソート選択、面接準備、ライブラリソート実装のパフォーマンス特性分析にこの比較を活用してください。

試してみる — Big-O Reference

フルツールを開く