Bonjour a tous ! Je me sers de cette fonction :
pour trier un tableau de double. Mais j'ai toujours un soucis, systématiquement, quand j'affiche toutes les cases du tableau (y'en a 150 pour info), et ben la plus grosse valeur est dans la première case, et à partir de la 2nd case, tout est bien classé par ordre croissant !!!!!! Et evidemment ça fausse mes résultats !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 void triBulle(double * t, int taille) { int i = 0; /* Indice de répétition du tri */ int j = 0; /* Variable de boucle */ double tmp = 0; /* Variable de stockage temporaire */ /* Booléen marquant l'arrêt du tri si le tableau est ordonné */ int en_desordre = TRUE; /* 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 < taille) && en_desordre; i++) { /* Supposons le tableau ordonné */ en_desordre = FALSE; /* Vérification des éléments des places j et j-1 */ for(j = 1 ; j < taille - i ; j++) { /* Si les 2 éléments sont mal triés */ if(t[j] < t[j-1]) { /* Inversion des 2 éléments */ tmp = t[j-1]; t[j-1] = t[j]; t[j] = tmp; /* Le tableau n'est toujours pas trié */ en_desordre = TRUE; } } } }
Partager