bonjour,
je me casse la tête sur le tri d'un tableau par ordre croissant ligne par ligne et caractère par caractère. Je vous met un exemple de reponse mais je l'ai pas trouvé ainsi.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
Voici le contenu de votre tableau : 
 TabTri[0] = 9111
 TabTri[1] = 1944
 TabTri[2] = 4492
 TabTri[3] = 2229
 
 Voici le contenu de votre tableau après le tri : 
 TabTri[0] = 1111
 TabTri[1] = 2222
 TabTri[2] = 4444
 TabTri[3] = 9999
Merci de votre aide, je donne plus bas les fonctions utilisées et le programme principal

mon code est un peut en vrac avec 2 fonctions en plus du programme principal

fonction echanger

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
private static void echanger(String[] nbr, int jechange) 
{
String sauvegarde = nbr[jechange];
nbr[jechange] = nbr[jechange + 1];
nbr[iechange + 1] = sauvegarde;
}
fonction tri
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
 
private static void triNumeric(String[] nbr, int nb) 
{
boolean inverse; // vrai si on effectue au moins une inversion de
// deux éléments dans la petite boucle, c'est-à-dire si le tableau n'est
// pas encore complètement trié
do {
inverse = false;
for (int i = 0; i < nb - 1; i++)
 // du premier à l'avant-dernier élément
{
for (int j=0; j < nbr[i].length()-1; j++)
{
if (nbr[j].charAt(j) > nbr[j + 1].charAt(j + 1)) 
// test des éléments caractère par caractère, si plus grand que
//son successeur
{
inverse = true; // le tableau n'est pas encore ordonné
echanger(nbr, j);
}
}
}
} while (inverse); // trier tant qu'il reste des éléments non
// ordonnés, donnant lieu à des inversions
}

programme principal
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
36
37
38
 
final static int MAXLIG = 4;
 
public static void main(String[] argument) throws IOException
 
{
int index;
String chaine;
String[] tabTri = new String[MAXLIG];
index = 0;
do 
{
System.out.print(" Entrer les 4 Nombres de la " + (index + 1)
+ "è ligne de votre tableau de : ");
Scanner sc = new Scanner(System.in);
chaine = sc.nextLine();
chaine = chaine.trim();
if (chaine.length() > MAXLIG) 
{
chaine = chaine.substring(0, MAXLIG);
}
tabTri[index] = chaine;
index++;
} while (index < MAXLIG);
System.out.println();
System.out.println(" Voici le contenu de votre tableau : ");
for (index = 0; index < MAXLIG; index++) 
{
System.out.println(" TabTri[" + index + "] = " + tabTri[index]);
}
//appel de ma fonction tri
triNumeric(tabTri, MAXLIG);
System.out.println();
System.out.println(" Voici le contenu de votre tableau après le tri : ");
for (index = 0; index < MAXLIG; index++) 
{
System.out.println(" TabTri[" + index + "] = " + tabTri[index]);
}
EXECUTION
après exécution, il se passe rien. aucun tri, rien n'a changé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
Voici le contenu de votre tableau : 
 TabTri[0] = 9111
 TabTri[1] = 1944
 TabTri[2] = 4492
 TabTri[3] = 2229
 
 Voici le contenu de votre tableau après le tri : 
 TabTri[0] = 9111
 TabTri[1] = 1944
 TabTri[2] = 4492
 TabTri[3] = 2229