【そーとあるごりずむ】
ソートアルゴリズム とは?
最終更新:
💡 同じデータを、決めた基準で整列する手順
データを、数値の大小や名前などの基準に沿って並べ替える手順の総称。方法によって処理時間、追加メモリ、同じキーの順序を保つ性質などが異なる。目的とデータに合う方法や標準機能を選ぶ。
📌 このページのポイント
- 値の大小や名前など、並べる基準を決める
- 処理時間・メモリ・安定性で方法を選ぶ
- 安定ソートは、同じキーの元の順番を保つ
- 標準機能も、比較方法や仕様を確認して使う
並べ替えるだけなのに、方法が多いの?
クイックソートなら、必ず一番速い?
安定ソートって、何が安定なの?
同じキーのデータが、元の相対的な順番を保つことだよ。点数が同じ生徒を並べたとき、その生徒同士の元の順序が残るイメージ。Pythonのsortedやlist.sortは安定性を保証し、ECMAScriptのArray.prototype.sortにも安定性の要件があるよ。
実際の開発でも、自分で書く?
どんなデータでも、比較して並べるの?
比較以外の方法もあるよ。カウンティングソートは各キーの出現数を数え、配置を決める。NISTは、データ数に比べてキーの種類が少ない場合に効率的と説明している。値の範囲や必要なメモリを含めて考え、条件なしにO(n)で最速とは言わないんだ。
まとめ:ざっくりこれだけ覚えればOK!
「ソートアルゴリズム」って出てきたら「データを順番に並べるための手順」と思えばだいたいOK!
📖 おまけ:英語の意味
「Sort Algorithm」 = 並べ替えの手順
💬 Sortは「分類する・並べる」、Algorithmは「問題を解く手順」のことだよ。