[JAVA] Tri de Tableau
Résolu
ramune
Messages postés
10
Statut
Membre
-
danimo -
danimo -
Bonsoir tout le monde
j'aimerais savoir pourquoi mon programme ne marche pas ???
public class TriNombre {
double[] tab={35, 6, 2, 66, 100, 36, 11, 1, 6, 14};
public void Tri(double [] tab) {
double max;
double aux=0;
for(int i=0;i<8;i++){
for(int j=1;j<9;j++){
if (tab[i]>tab[j]){
tab[i]=aux;
tab[i]=tab[j];
tab[j]=aux;
}
}
}
}
public void affiche() {
for (int i=0;i<9;i++)
System.out.println(tab[i]);
}
}
en gros mon idee est de comparer UNE valeure ( la valeure max) a toutes les autres jusqu'a quelle soit a la bonne place tout au bout du tableau (c'est un tri a bulle je crois)
c'est pas le meilleur algo pour ranger un tableau mais je ne veux pas me prendre la tete avec un algo plus compliqué (genre le quick sort >_< )
Merci beaucoup
j'aimerais savoir pourquoi mon programme ne marche pas ???
public class TriNombre {
double[] tab={35, 6, 2, 66, 100, 36, 11, 1, 6, 14};
public void Tri(double [] tab) {
double max;
double aux=0;
for(int i=0;i<8;i++){
for(int j=1;j<9;j++){
if (tab[i]>tab[j]){
tab[i]=aux;
tab[i]=tab[j];
tab[j]=aux;
}
}
}
}
public void affiche() {
for (int i=0;i<9;i++)
System.out.println(tab[i]);
}
}
en gros mon idee est de comparer UNE valeure ( la valeure max) a toutes les autres jusqu'a quelle soit a la bonne place tout au bout du tableau (c'est un tri a bulle je crois)
c'est pas le meilleur algo pour ranger un tableau mais je ne veux pas me prendre la tete avec un algo plus compliqué (genre le quick sort >_< )
Merci beaucoup
3 réponses
-
Je pense qu'en modifiant ici il y a des chances que ça fonctionne mieux ;) :
tab[i]=aux; tab[i]=tab[j]; tab[j]=aux;
Transformé en :<code>aux=tab[i];
// --- Sauvegarde de tab[i] dans aux et non l'inverse
tab[i]=tab[j];
tab[j]=aux;
</code>
Si après ça ça ne fonctionne toujours pas c'est que ton algo est mauvais et qu'il faut penser à en faire un autre.
-
-
Salut,
À essayer:for(int i=0;i<10;i++){ for(int j=0;j<10;j++){ if (tab[i]<tab[j]){ aux=tab[i]; tab[i]=tab[j]; tab[j]=aux; affiche(); // pour suivre le déroulement } } System.out.println(""); }
Remarque:
À toutes fins utiles, on peut très facilement trier ce genre de tableau (données comparables) en utilisant sort de la classe Arrays:
Arrays.sort(tab); //import java.util.Arrays; affiche();
Cordialement,
Dan