]> matita.cs.unibo.it Git - pkg-cerco/acc.git/blob - tests/tmp_tests/Backend/bubble_sort.c
Package description and copyright added.
[pkg-cerco/acc.git] / tests / tmp_tests / Backend / bubble_sort.c
1
2 #define SIZE 5
3
4 signed char min (signed char tab[], signed char size, signed char n) {
5   signed char i, min_index, min;
6
7   if (size == 0) return 0;
8
9   min_index = n;
10   min = tab[min_index];
11   for (i = n+1 ; i < size ; i++) {
12     if (tab[i] < min) {
13       min_index = i;
14       min = tab[min_index];
15     }
16   }
17
18   return min_index;
19 }
20
21 void swap (signed char tab[], signed char i, signed char j) {
22   signed char t;
23   t = tab[i] ; tab[i] = tab[j] ; tab[j] = t;
24 }
25
26 void bubble_sort(signed char tab[], signed char size) {
27   signed char i, min_index;
28
29   for (i = 0 ; i < size ; i++) {
30     min_index = min(tab, size, i);
31     swap(tab, i, min_index);
32   }
33 }
34
35 void print_tab (signed char tab[], signed char size) {
36   signed char i;
37
38   for (i = 0 ; i < size ; i++) {
39     print_schar(tab[i]);
40     space();
41   }
42   newline();
43 }
44
45 signed char main () {
46   signed char tab[SIZE] = {26, -21, 43, -62, 8};
47
48   bubble_sort(tab, SIZE);
49   print_tab(tab, SIZE);
50
51   return 0;
52 }