データ列を、なんらかのルールに従うように並べ替えることです。
たとえば、整数のデータ列を値の小さい順や大きい順になるように並べ替えたり、文字列で表現された氏名を五十音順に並べ替えたりすることが挙げられます。
小さい方から大きい方へ並ぶように並べ替えることを昇順といい、逆に大きい方から小さい方へ並ぶように並べ替えることを降順といいます。
ソートを実現するための手法(アルゴリズム)は多数知られており、全体的な実行効率が良いものや、特定ケースにおいて非常に良いパフォーマンスを出すもの、メモリ使用量の面で有利になるもの、データ構造の制約を受けるもの・受けにくいものといったように、それぞれに特性があります。そのため、適切な使い分けが求められます。
また、ソートアルゴリズムを、安定なソートかどうかや、内部ソート・外部ソートのいずれであるかといった観点で分類することがあります。安定なソートは、データ列の中に、ソート後の順位が同じになるデータが複数あるとき、ソート後にソート前の位置関係が崩れない保証があるものをいいます。内部ソートは、ソートしようとする対象のデータ列の領域内でうまく作業を行うことができ、追加のメモリ領域を必要としない(あるいはわずかしか必要としない)ものをいい、外部ソートは作業のために、対象のデータ列のほかに、その個数に応じた追加の領域を必要とするものをいいます。
ソートのアルゴリズムについて、アルゴリズムとデータ構造編【整列】でいくつか解説しています。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |