1 int printf(); 2 void *malloc(); 3 void srandom(); 4 int random(); 5 int atoi(); 6 int mod(int x, int y) 7 { 8 return x - (x / y) * y; 9 } 10 11 void swap(int *a, int *b) 12 { 13 int tmp; 14 tmp = *a; 15 *a = *b; 16 *b = tmp; 17 } 18 19 void bubble_sort(int *data, int size) 20 { 21 int i; 22 int j; 23 i = size - 1; 24 while (0 < i) 25 { 26 j = 0; 27 while (j < i) 28 { 29 if (*(data + (j + 1)) < *(data + j)) 30 swap(data + j, data + (j + 1)); 31 j = j + 1; 32 } 33 i = i - 1; 34 } 35 } 36 37 void make_array(int *data, int size, int seed) 38 { 39 int i; 40 i = 0; 41 srandom(seed); 42 while (i < size) 43 { 44 int j; 45 j = random(); 46 *(data + i) = mod(j, size); 47 i = i + 1; 48 } 49 } 50 51 int main(int argc, char **argv) 52 { 53 int i; 54 int *p; 55 int size; 56 size = atoi(*(argv + 1)); 57 p = malloc(4 * size); 58 make_array(p, size, 0); 59 bubble_sort(p, size); 60 i = 0; 61 while (i < size) 62 { 63 printf("%d\n", *(p + i)); 64 i = i + 1; 65 } 66 } 67