#include "sort.h" #include "system.h" #include "stdio.h" void sort_bubble(unsigned int *base, unsigned int n) { int i = 0; /* Indice de répétition du tri */ int j = 0; /* Variable de boucle */ int tmp = 0; /* Variable de stockage temporaire */ int en_desordre = 1; /* Booléen marquant l'arrêt du tri si le tableau est ordonné */ /* Boucle de répétition du tri et le test qui arrête le tri dès que le tableau est ordonné */ for(i = 0 ; (i < n) && en_desordre; i++) { #if VERBOSE_SORT printf("-"); // added for debug #endif /* Supposons le tableau ordonné */ en_desordre = 0; /* Vérification des éléments des places j et j-1 */ for(j = 1 ; j < n - i ; j++) { /* Si les 2 éléments sont mal triés */ if(base[j] < base[j-1]) { /* Inversion des 2 éléments */ tmp = base[j-1]; base[j-1] = base[j]; base[j] = tmp; /* Le tableau n'est toujours pas trié */ en_desordre = 1; } } #if VERBOSE_SORT printf("+"); // added for debug #endif } #if VERBOSE_SORT printf("\n"); #endif }