#include <stdio.h>
 
int D[10] = {10, 0, -4, 2, 8, 1, 9, 20, 13, 24};
 
void bubble_sort(int *data, int size);
 
int main(int argc, char *argv[])
{
  int *data; // 数値データ
  int size;  // 数値データの個数
  int i;  // ループで使用する;
 
  //データの格納
  data = (int *)malloc(sizeof(int)*10);
  size = 10;
  for(i=0; i<size; i++){
    data[i]=D[i];
  }
  // ソート前の数値データの表示
  printf("<Before>\n");
  for(i=0; i<size; i++){
    printf("[%2d]: %d\n",i, data[i]);
  }
  // バブルソート
  bubble_sort(data, size);
  // ソート後の数値データの表示
  printf("\n");
  printf("<After>\n");
  for(i=0; i<size; i++){
    printf("[%2d]: %d\n",i, data[i]);
  }
 
  // メモリ開放
  free(data);
  return 0;
}
 
// バブルソート(データを昇順に並べる)
void bubble_sort(int *data, int size)
{
  int i, j;
  int swap;
 
  for(i=0; i<size-1; i++){
    for(j=size-1; j>i; j--){
      if(data[j]<data[j-1]){
        swap      = data[j];
        data[j]   = data[j-1];
        data[j-1] = swap;
      }
    }
  }
}
 
最終更新:2010年05月26日 13:48