go-sort - 背景

歴史的経緯

ソートアルゴリズムの発展

1945年、John von Neumann がマージソートを発明しました。これは分割統治法を使用した最初のソートアルゴリズムでした。

その後、様々なソートアルゴリズムが開発されました:

  • 1959年: シェルソート
  • 1960年: クイックソート(Tony Hoare)
  • 1964年: ヒープソート

スタックソートの研究

2つのスタックでのソートは、計算理論の研究対象です。最小操作数を求める問題はNP困難であることが知られています。

コンピュータサイエンス的な意味

計算量

アルゴリズム 最良 平均 最悪 空間
バブルソート O(n) O(n²) O(n²) O(1)
クイックソート O(n log n) O(n log n) O(n²) O(log n)
マージソート O(n log n) O(n log n) O(n log n) O(n)
ヒープソート O(n log n) O(n log n) O(n log n) O(1)

スタックマシン

スタックは多くの場面で使用されます:

  • 関数呼び出し(コールスタック)
  • 逆ポーランド記法の計算
  • 構文解析

実践での活用

go-sort で学ぶアルゴリズム思考は、以下の場面で役立ちます:

  • データベースのインデックス構築
  • 検索結果のランキング
  • メモリ効率の最適化