ソートアルゴリズム1
4821 ワード
ソートの選択
時間の複雑さO(n*n)は,基本思想は各ラウンドが並べ替えられていない部分の中で最も値を見つけることである.
小から大へのソート・バージョン
// A[n]
for(int i = 0;i < n-1;i++){
int k = i;
for(int j = i+1;j < n;j++){
if(A[k] > A[j])
k = j;
}
int temp = A[i];
A[i] = A[k];
A[k] = temp;
}
バブルソート
時間の複雑さはO(n*n)であり,基本的な考え方は,各ラウンドが並べ替えられていない部分の最値を先頭または末尾に移動することである.
小さいバージョンから大きいバージョンまで
// A[n]
for(int i = 1;i <= n;i++){
for(int j = 0;j < n-i;j++){
if(A[j] > A[j+1]){
int temp = A[j];
A[j] = A[j+1];
A[j+1] = temp;
}
}
}