Tri décroissant d'un vector
Résolu
sihem hcine
Messages postés
113
Date d'inscription
Statut
Membre
Dernière intervention
-
sihem hcine Messages postés 113 Date d'inscription Statut Membre Dernière intervention -
sihem hcine Messages postés 113 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Trier ordre décroissant matlab
- Excel trier par ordre croissant chiffre - Guide
- Logiciel pour trier les photos automatiquement - Guide
- Triez ce tableau par ordre alphabétique des prénoms. - Forum Excel
- Triez ce tableau par ordre alphabétique des prénoms ✓ - Forum Excel
- Excel trier par date ne fonctionne pas ✓ - Forum Excel
2 réponses
Salut,
Si ça ne marche pas alors je te conseille de faire un bon tri à l'ancienne avec les indices de tes objets (si tu veux opti, je te conseille le Quicksort il est puissant et assez facile à utiliser)
Collections.reverse(File_Prêt.note)
Si ça ne marche pas alors je te conseille de faire un bon tri à l'ancienne avec les indices de tes objets (si tu veux opti, je te conseille le Quicksort il est puissant et assez facile à utiliser)
Bonjour,
Cela n'est donc utile pour faire un tri décroissant que si la liste est déjà triée dans l'ordre croissant, avec
Deux cas de figure :
1) La classe Processus implémente l'interface Comparable<Processus> et définit la méthode
Dans ce cas tu peux faire un Collections.sort(filePret); pour les trier dans l'ordre croissant puis un Collections.reverse(filePret); pour obtenir l'ordre décroissant.
2) La classe Processus n'implémente pas l'interface Comparable<Processus> ou définit une méthode compareTo(Processus) qui ne compare pas avec les notes des processus.
Dans ce cas il faut construire un objet Comparator<Processus> dont la méthode
Voici un exemple dans le deuxième cas.
En Java 5,6,7 :
En Java 8, on peut remplacer le Comparator par une expression lambda :
La confiance n'exclut pas le contrôle
Collections.reverseprends une liste et renvoie une liste où les éléments sont pris en sens inverse (le premier en dernier etc.)
Cela n'est donc utile pour faire un tri décroissant que si la liste est déjà triée dans l'ordre croissant, avec
Collections.sortpar exemple.
Deux cas de figure :
1) La classe Processus implémente l'interface Comparable<Processus> et définit la méthode
compareTo(Processus)de sorte à comparer les notes des processus.
Dans ce cas tu peux faire un Collections.sort(filePret); pour les trier dans l'ordre croissant puis un Collections.reverse(filePret); pour obtenir l'ordre décroissant.
2) La classe Processus n'implémente pas l'interface Comparable<Processus> ou définit une méthode compareTo(Processus) qui ne compare pas avec les notes des processus.
Dans ce cas il faut construire un objet Comparator<Processus> dont la méthode
compare(Processus,Processus)permet d'ordonner deux objets Processus par note décroissante. Il suffit ensuite d'appeler Collections.sort(filePret, comparator); pour trier les valeurs dans cet ordre.
Voici un exemple dans le deuxième cas.
En Java 5,6,7 :
Comparator<Processus> comparator = new Comparator<Processus>() { @Override public int compare(Processus p1, Processus p2) { return p2.getNote() - p1.getNote(); } }; List<Processus> list = Collections.sort(filePret, comparator);
En Java 8, on peut remplacer le Comparator par une expression lambda :
List<Processus> list = Collections.sort(filePret, (p1,p2) -> p2.getNote() - p1.getNote());
La confiance n'exclut pas le contrôle
Voila une page expliquant très bien le principe du quicksort :
http://openclassrooms.com/courses/le-tri-rapide-qsort
J'ai oublié de te préciser mais si ton tableau est déjà plus où moins trié mieux vaut choisir un autre tri (par insertion par ex)