Tri par fusion (Merge Sort)
Bonjour,
j'ai un tableau d'objets (créés à partir d'une classe) que je veux trier, suivant la valeur d'un attribut de la classe, en utilisant l'un des algorithmes de tri connus par leur complexité réduite.
La recherche sur internet m'a préconisée d'utiliser le tri par fusion (Merge Sort) dont la complexité est O(n log n).
J'ai essayé d'implémenter cet algorithme en Java, mais je n'ai pas réussi à le faire. J'ai aussi cherché sur Internet vainement car les programmes proposés sont incomplets (juste des fragments de code).
Quelqu'un pourrait m'aider par un code fonctionnel ?
Remerciement.
Tri personnalisé des objets en utilisant Comparator
Citation:
Envoyé par
saimer
OUI, effectivement je veux avoir des listes avec tes objets classés selon des criteres differents. Mais je n'ai pas pu le faire
Bonjour,
je suis vraiment BLOQUE sur mon problème de tri d'objets.
De façon plus pratique, j'ai une classe Produit décrivant un ensemble de produits par l'attribut libelleProd de type simple et listQualiteProd de type d'une autre classe Qualite. L'attribut "listQualiteProd" décrit un ensemble de qualités relatives à un produit donné tel que le coût, disponibilité en stock, etc. L'ensemble de qualités peut évoluer, c'est pourquoi j'ai utilisé une liste.
Voici mes déclarations :
public class Produit {
private String libelleProd;
private ArrayList<Qualite> listQualiteProd = new ArrayList <Qualite> ();
...
}
public class Qualite {
private String nomQualite ;
private double valeurQualite;
...
}
Voici un exemple de 3 produits. On considère que chaque produit a deux qualité (cout et dispo en stock) :
Produit 1 : montre; (cout = 100, dispo=12)
Produit 2 : table; (cout= 13, dispo=39)
Produit 3 : Stylo; (cout= 5, dispo=96)
J'ai un tableau "tab" d'objets de la classe Produit.
ArrayList<Produit> tab = new ArrayList<Produit>();
Je veux trier les objets de "tab", selon l'attribut "libelleProd" et chacun des attributs de listQualiteProd.
J'ai trouvé sur Internet comment utiliser "Comparator" pour le tri personnalisé sur des attributs d'une classe
http://examples.javacodegeeks.com/co...rator-example/
mais pour une liste, comme dans mon cas, j'ai du mal à le faire.
Merci pour votre aide.