[JAVA] Tri de Tableau

Résolu/Fermé
ramune Messages postés 10 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 25 mars 2008 - 26 févr. 2008 à 23:32
 Utilisateur anonyme - 20 nov. 2010 à 12:29
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
A voir également:

3 réponses

kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
27 févr. 2008 à 09:28
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.
0
je pense q'il y a une erreur au niveau de la permutation des cases !
0
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
0