【a_basort.cのソースコード】
/*-------------------------------------*/
/* 単純ソート法によるソート a_basort.c */
/*-------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 100
void ba_sort(int d[], int top, int end);
int main(void)
{
int i, d[N];
srand((unsigned int)time(NULL));
printf("【整列前】\n");
for (i = 0; i < N; i++) {
d[i] = rand() % 100;
printf("%3d ", d[i]);
if ((i + 1) % 10 == 0)
printf("\n");
}
printf("\n");
ba_sort(d, 0, N-1);
printf("【整列後】\n");
for (i = 0; i < N; i++) {
printf("%3d ", d[i]);
if ((i + 1) % 10 == 0)
printf("\n");
}
printf("\n");
}
void ba_sort(int d[], int top, int end)
{
int i, j, tmp;
for (i = top; i < end; i++) {
for (j = i + 1; j <= end; j++) {
if (d[i] > d[j]) {
tmp = d[i];
d[i] = d[j];
d[j] = tmp;
}
}
}
}
D:\test>a_basort
【整列前】
20 30 51 81 82 86 17 77 62 53
59 17 46 78 45 54 54 22 97 3
75 97 97 60 28 9 65 42 88 38
26 77 24 14 8 27 62 17 75 56
55 95 95 86 33 33 74 68 88 58
84 29 29 87 38 34 7 73 0 49
18 1 23 47 85 56 51 20 40 60
12 48 66 87 4 41 15 58 64 8
69 37 54 48 97 5 95 41 92 50
28 13 35 86 6 99 38 33 82 21
【整列後】
0 1 3 4 5 6 7 8 8 9
12 13 14 15 17 17 17 18 20 20
21 22 23 24 26 27 28 28 29 29
30 33 33 33 34 35 37 38 38 38
40 41 41 42 45 46 47 48 48 49
50 51 51 53 54 54 54 55 56 56
58 58 59 60 60 62 62 64 65 66
68 69 73 74 75 75 77 77 78 81
82 82 84 85 86 86 86 87 87 88
88 92 95 95 95 97 97 97 97 99
参考文献