Partage

Trier un tableau en java

Trier un tableau en java

6 janvier 2007 à 22:38:49

bsr,
je suis debutante en java, et je veux savoir comment on peux trier un tableau en java, quelqu'un peux m'aider??? heeeeelppp :(
merci d'avance!
7 janvier 2007 à 0:43:54

Essaie ça :

import java.util.*;

public class Test {
        public static void main(String[] args) {
                int[] list = new int[4];
                list[0] =152 ;
                list[1] = 5;
                list[2] = 596;
                list[3] = 63;

                Arrays.sort(list);

                for(int i = 0; i < list.length; i++)
                        System.out.println(list[i]);
        }
}


Lien vers la doc
10 janvier 2007 à 11:56:35

sinon d'un point de vue algorythmique, il y a diverse méthode de tri (tri bulle, tri plomb, tri fusion, tri sélection, tri mini, tri maxi...)
3 juin 2008 à 17:17:57

bonjour,
Je voudrais trier mon tableau dans l'ordre inverse. C'est à dire quand j'ai fait un sort de mon tableau pour trier bien mon tableau, j'ai besoin d'inverser l'ordre. Autrement dit, que mon tableau soit trier du plus grand au plus petit. dans d'autres langages on a des méthodes comme:

rsort() ou encore reverse()

mais dans mon programme, il semble que ça n'existe pas... :/

Voici mon code:

//declaration de la methode ClassementMat
	public static int ClassementMat(){
//declaration des variables de la methode ListingMat
		String matiere, requete, numEtu;
		float[] tab = new float[100];
		ResultSet rs;
		int update = -1, i=0, position=1;
		
		System.out.println("Indiquez la matiere dont vous voulez le classement");
		matiere = Clavier.readString();
		
		try {
			//connection
			Connecter();
			//requete de selection de l'etudiant
			requete = "SELECT AVG(note) FROM not_NOTES WHERE matiere='"+matiere+"' GROUP BY numeroEtudiant ORDER BY note DESC";
			rs = stmt.executeQuery(requete);
			while(rs.next()){
				tab[i] = rs.getFloat("AVG(note)");
				Arrays.sort(tab);
				Array.reverse();
				System.out.println(position+". "+tab[i]);
				position++;
				i++;
			}
			
			//deconnection();
			con.close();
		}//fin try
		catch (Exception e) {
			e.printStackTrace();
		}//fin catch
		
		return update;
	}//fin ClassementMat
3 juin 2008 à 21:21:32

En général, on travaille avec des listes d'objets ou des tableaux d'objet.

Dans ce cas, il faut utiliser la méthode : sort(Object, Comparator) http://java.sun.com/j2se/1.4.2/docs/api/java/util/Arrays.html#sort(java.lang.Object[],%20java.util.Comparator)
en implémentant un Comparator qui donne l'ordre inverse.

Exemple :
class MonObject {
  String monNom;
  public String getMonNom() { return monNom;}
}

MonObject[] monTableau = new ....

Arrays.sort(monTableau,  new Compatator() { 
     int compare(Object o1, Object o2) {
        MonObject m1 = (MonObject) o1;
        MonObject m2 = (MonObject) m2;
        return -m1.getMonNom().compareYTo(m2.getMonNom());
     }
});


Il faut éventuellement adapter suivant la classe et le type de champ à comparer
14 juin 2013 à 19:14:20 - Message modéré pour le motif suivant : Déterrage


23 janvier 2016 à 10:58:20

bonjour ..., on a un vecteur composé de 04 cases chacune des  cases a un numéro (compris entre 1 et 4) 

Travai demanndé : essayer de trier le vecteur  en utilisant la méthode d'exploration c à  d dessiner l'arbre .

24 mai 2016 à 17:26:27

package Progr_Orienté_Objet;

/**

 *

 * @author MCDIALLO

 */

public class TrietabEntiers {

    public static void tabTrie(int tab[],int taille){

        int indice_max;

        for(int i=taille;i>1;i--){

            indice_max=max(tab,i);

            echanger(tab,i-1,indice_max);

        }

    }

    public static int max(int tab[],int taille){

        int i=0,indice_max=0;

        while(i<taille){

            if(tab[i]>tab[indice_max])

                indice_max=i;

            i++;

        }

        return indice_max; 

    }

    public static void echanger(int tab[],int i,int j){

        int tmp;

        tmp=tab[i];

        tab[i]=tab[j];

        tab[j]=tmp;

    }

    public static void main(String[] args){

        int t[]={2,1,4,6,3};

        tabTrie(t,t.length);

        for(int i=0; i<t.length;i++)

            System.out.println(t[i]);

    }

}

-
Edité par MamadouCiréDiallo 24 mai 2016 à 17:27:47

Trier un tableau en java

× Once you click on "Answer", you will need to log in to publish your message.
  • Editeur
  • Markdown