ソートアルゴリズム
ソート(sort)とは、データの集合を一定の規則に従って並べることのことです。日本語では整列(せいれつ)といいます。
単にソートというと、値を小さい順に並べる昇順(しょうじゅん、ascending order)を指すことが多いみたいです。
その反対に値を大きい順から並べることを降順(こうじゅん、descending order)といいます。
単にソートというと、値を小さい順に並べる昇順(しょうじゅん、ascending order)を指すことが多いみたいです。
その反対に値を大きい順から並べることを降順(こうじゅん、descending order)といいます。
C++では<algorithm>ヘッダをインクルードすることでsort関数を使えるので、便利です。
つまりソートのアルゴリズムを知らなくてもソートできるということです。
しかし、ソートのアルゴリズムを知りたい人もいると思うので、
各ソートのアルゴリズムとコードを載せておきます。
つまりソートのアルゴリズムを知らなくてもソートできるということです。
しかし、ソートのアルゴリズムを知りたい人もいると思うので、
各ソートのアルゴリズムとコードを載せておきます。
- |
例えばvector<int> vc;に対してvcの要素のすべてを昇順にソートしたいなら
sort( vc.begin() , vc.end() );
と書くだけでソートが完了します。
数値だけでなく、文字列(std::string)であれば辞書順にソートされます。
次がソートの例です。
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main(){ int n,a; vector<int> vc; cin >> n; for(int i=0 ; i<n ; i++ ){ cin >> a; vc.push_back( a ); } sort( vc.begin() , vc.end() ); cout << "ソートしました" << endl; for(int i=0 ; i<vc.size() ; i++ ){ cout << "a[" << i << "] : " << a[i] << endl; } } |
比較的有名なソートアルゴリズム
マイナーなソートアルゴリズム?
- ボゴソート?
- ボゾソート?
- シェーカーソート?
- コムソート?
- ノームソート?
- シェルソート?
- 2分木ソート?
- ライブラリソート?
- ヒープソート?
- イントロソート?
- バケットソート?
- 鳩の巣ソート?
- 分布数えソート?
- 逆写像ソート?
...