C言語によるバブルソートの実装
サンプルプログラム
ここでは実際に、C言語によるバブルソートの実装を見てみることにします。以下のプログラムを実行してみてください。
listex5-quick-1:main.c
#include <stdio.h>
#define MAX_LENGTH 5
void showData(int*,int);
void main(){
int array[MAX_LENGTH] = { 5,2,3,1,4 };
int i,j,tmp;
// 先頭の要素のループ
for(i = 0;i < MAX_LENGTH-1 ; i++){
// 配列の表示
showData(array,MAX_LENGTH);
for(j = i+1; j < MAX_LENGTH ; j++){
if(array[i] < array[j]){
// 値の入れ替え
tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
}
}
// 最後にもう一度結果表示
showData(array,MAX_LENGTH);
}
// 配列の表示
void showData(int* array,int length){
int i;
for(i = 0; i < length; i++){
printf("%d ",array[i]);
}
printf("¥n");
}
5 2 3 1 4
5 2 3 1 4
5 4 2 1 3
5 4 3 1 2
5 4 3 2 1
5 2 3 1 4
5 4 2 1 3
5 4 3 1 2
5 4 3 2 1
15行目のif文の不等号の向きを入れ替えれば、降順・昇順を容易に入れ替えることが可能です。また、定数MAX_LENGTHの値を変えることによって、さまざまなデータのソートを行うことが可能になります。






