New javaer

Fermé
yang - Modifié par KX le 9/02/2016 à 21:36
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 - 10 févr. 2016 à 23:03
Bonjour,

je vient de étudier java et j'ai une problème sur le sujet tri par sélection

voici mon code

public static void main (String args[]) {
  int[]t = {1,1,2,4,7,5};
  int n = t.length;
  int B = 9;
  int a = 1;
  tri(t,a,n,B);
  for(int i = 0;i<n;i++){
   System.out.println(t[i]);
   }

public static void tri(int[] tableau,int a, int n, int B){
  for(int c=0;c<n;c++){
   int min = c;
   for(int j = c+1;j<n;j++){
    if (tableau[j]<tableau[min]){
     min = j;
    }
     }
   if(min!=c){
    tableau[c]=tableau[min];
    }  
}
}
}


mais j'ai le résultat :
1
1
2
4
5
5


qqun m'aidez ?

2 réponses

Smiley32 Messages postés 155 Date d'inscription lundi 7 juillet 2014 Statut Membre Dernière intervention 10 février 2016 23
10 févr. 2016 à 14:08
Salut,
Tout d'abord, plusieurs choses :
- Qu'est-ce que ton programme est censé faire ?
- Donne des noms significatifs à tes variables pour qu'on puisse te relire
- Indente correctement ton code
Ensuite, essaye de parler en français correct pour qu'on puisse te comprendre
0
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
10 févr. 2016 à 23:03
Bonjour yang,

A la ligne 20 tu copies l'indice min vers l'indice courant.
En fait, il faut échanger les deux valeurs par
 if ( min != c ) {
    int tmp = tableau[c]; 
    tableau[c] = tableau[min];
    tableau[min] = tmp;
}
0