[JAVA] Tri de Tableau
Résolu
ramune
Messages postés
10
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
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
A voir également:
- [JAVA] Tri de Tableau
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
3 réponses
Je pense qu'en modifiant ici il y a des chances que ça fonctionne mieux ;) :
Transformé en :
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.
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:
Remarque:
À toutes fins utiles, on peut très facilement trier ce genre de tableau (données comparables) en utilisant sort de la classe Arrays:
Cordialement,
Dan
À 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