Trier un tableau cas croissant seul marche
bonsoir
en triant mon tableau le cas croissant seulement marche
en cas décroissant il marche pas,en plus il change l'ordre de saisie en croissant.
mon output est:
Entrez le nb d'élément:
3
Saissisez les nombres:1
7
Saissisez les nombres:2
8
Saissisez les nombres:3
9
[7, 8, 9]
tableau est: true
----------------------------
Entrez le nb d'élément:
3
Saissisez les nombres:1
7
Saissisez les nombres:2
5
Saissisez les nombres:3
2
[5, 7, 2]
tableau est: true
je veux, qu'il garde en ordre de saisie comme le 1er cas, mais celui ci le change et s'affiche 5,7,2 au lieu de 7,5,2
et afficher false en cas de décroissant , aidez moi svp
Code:
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 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
import java.util.Scanner;
import java.util.Arrays;
public class Test2
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
System.out.println("Entrez le nb d'élément:");
int n=sc.nextInt();
int tab[]=new int [n];
boolean croissant=true;
for(int i=0;i<n;i++)
{
System.out.println("Saissisez les nombres:"+(i+1));
tab[i]=sc.nextInt();
}
TriTableauCroissant(tab,n,croissant);
}
public static int[] TriTableauCroissant(int[] tab, int n, boolean croissant)
{
int i, pos,temp;
for( i=0;i<n-2;i++)
{
pos=i;
for(int j=i+1;j<n-1;j++)
{
if(croissant)
{
if(tab[j]<tab[pos])
{
pos=j;
}
else
{
if(tab[j]>tab[pos])
{
pos=i;
}
}
}
temp=tab[pos];
tab[pos]=tab[i];
tab[i]=temp;
}
}
System.out.println(Arrays.toString(tab));
System.out.println("tableau est: "+croissant);
return tab;
}
} |