検索に移動ウィキペディアの表のソートについては「Help:表の作り方#再整列可能な表」を、カテゴリのソートキーについてはHelp:カテゴリ#ソートキーをご覧ください。この項目では、整列について説明しています。16世紀スペインの神学者については「ドミンゴ・デ・ソト」をご覧ください。データの集合を一定の規則に従って並べること。日本語では整列(せいれつ)と訳される[要出典]。以前[いつ?]はその原義から分類という訳語が充てられていた[1]。配列や連結リストのような、リストデータ構造に分類されるコレクション(コンテナ)に格納されている要素データを、全順序関係によって並べ替えることを指す。order)を指すことが多い。対象となるコレクションのデータ構造や必要とされる出力、また時間的コストと空間的コストの兼ね合いによって、ソートに使われるアルゴリズムは異なる。概要[編集]効率的なソートは、ソート済みのデータを必要とする他のアルゴリズム(探索やマージ)の最適化にとっても重要である。ソートされたデータの方が人間にとっても読みやすい。形式的には、その出力は以下の2つの条件を満たさなければならない。設定された順序(昇順または降順)に対して、逆になるような順序の出力があってはならない。出力は入力の並べ替えでなければならない。情報工学や計算機科学の黎明期から、ソートは単純な問題でありながら効率的に解くことが難しく、そのためもあって盛んに研究されてきた。バブルソートについては、早くも1956年には解析が行われている[2]。多くの人は既に解決済みの問題と考えている[要出典]が、現在[いつ?]も新たなソートアルゴリズムが発明されている(例えば、図書館ソートが最初に発表されたのは2004年である)。考案されているソートにも様々なアルゴリズムがあり、またアルゴリズムという概念を学習するのに最適なので、情報工学や計算機科学での入門的題材として広く親しまれている。分割統治法、データ構造、乱択アルゴリズム、計算量解析、O記法、時間と空間のトレードオフ、下限などが含まれる。挙げられるが、各レコードのフィールドを表す任意のカラムについてリスト中のアイテムを昇順/降順ソートできるようになっていることが多い。ソートアルゴリズムの分類[編集]計算機科学では、ソートアルゴリズムを次のように分類する。同じ値に関して、ソート前の順序がソート後も維持されているソートを安定ソートという。安定ソートでないソートであっても、ソート条件に元の順序を含めることで必ず安定ソートにすることが可能である。別途元の順序を記憶する領域が必要になることから、内部ソートであっても外部ソートになってしまう。(→#内部ソートと外部ソート)内部ソートと外部ソート[編集]ソートされるデータの格納領域を変更して処理を進めていくIn-placeのソートを内部ソートという。領域を必要とすることからIn-placeであるか否かは議論が分かれるところであるが、これも内部ソートに含めるのが一般的である。領域しか必要としない。以上の一時的な記憶領域が必要であるソートを外部ソートという。メモリ使用量(およびその他の計算資源の使用量)による分類である。すべての内部ソートは、インデックスや参照、複製を作成して処理することで事実上の外部ソートにすることができる。アルゴリズムとしての本質ではないので一般的には無視されるが、高速化や柔軟な処理のために冗長な記憶領域を使用する場合がある。非安定ソートアルゴリズムで安定ソートを実現する場合など。個々の項目を比較演算で大小判定することを基本とするソートを比較ソートという。比較ソートには#比較ソートの理論限界が存在する。基づいた計算量による分類。