/* * 単純交換法(Bubble Sort) * DACCHO wrote this sample program. */ #include #include #include void output_array(int *ptr, int n); void bubble_sort(int *ptr, int n); void swap(int *ptr1, int *ptr2); int main(void) { int a[20]; int i; srand((unsigned)time(NULL)); for(i=0; i<20 ; i++) a[i] =rand() %100; printf("*** 単純交換法(Bubble Sort)によるソート ***\n"); printf("ソート前のデータの並び\n"); output_array(a, 20); printf("Press Enter Key\n"); getchar(); printf("ソート後のデータの並び\n"); bubble_sort(a, 20); output_array(a, 20); printf("Press Enter Key\n"); getchar(); return 0; } void output_array(int *ptr, int n) { int i; for(i=0; ii; j--){ /* 以下の行の判定を「>」から「<」へ変更すると降順になります */ if(*(ptr+j-1) > *(ptr+j)){ swap((ptr+j-1), (ptr+j)); } } } } void swap(int *ptr1, int *ptr2) { int w; w = *ptr1; *ptr1 = *ptr2; *ptr2 = w; }