]> matita.cs.unibo.it Git - pkg-cerco/acc.git/blob - tests/tmp_tests/Backend/bubble_sort_u.c
Imported Upstream version 0.2
[pkg-cerco/acc.git] / tests / tmp_tests / Backend / bubble_sort_u.c
1
2 #define SIZE 5
3
4 unsigned char min (unsigned char tab[], unsigned char size, unsigned char n) {
5   unsigned 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 (unsigned char tab[], unsigned char i, unsigned char j) {
22   unsigned char t;
23   t = tab[i] ; tab[i] = tab[j] ; tab[j] = t;
24 }
25
26 void bubble_sort(unsigned char tab[], unsigned char size) {
27   unsigned 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 (unsigned char tab[], unsigned char size) {
36   unsigned char i;
37
38   for (i = 0 ; i < size ; i++) {
39     print_uchar(tab[i]);
40     space();
41   }
42   newline();
43 }
44
45 unsigned char main () {
46   unsigned char tab[SIZE] = {26, -21, 43, -62, 8};
47
48   bubble_sort(tab, SIZE);
49   print_tab(tab, SIZE);
50
51   return 0;
52 }