public ListeTriable <T> Tri() { ListeTriable <T> listeTriableTrie = new ListeTriable <T>(); for (int i = 0; i < Count; i++) { listeTriableTrie.Ajouter(this[i]); } return(listeTriableTrie); // tri a bulle en comparant les valeurs de this[i] /* * int n = Count - 1; * for (int i = n; i >= 1; i--) * { * for (int j = 2; j <= i ; j++) * { * if (this[j-1] - this[j] < 0) // ca ne marche pas * { * * } * T temp = this[j - 1]; * } * } */ }
static void Main(string[] args) { // Test de ListeTriable // sur des entiers ListeTriable <int> listeTriable = new ListeTriable <int>(); listeTriable.Ajouter(45); listeTriable.Ajouter(20); listeTriable.Ajouter(10); listeTriable.Ajouter(13); listeTriable.Ajouter(606); ListeTriable <int> listeTriableTrie = new ListeTriable <int>(); listeTriableTrie = listeTriable.Tri(); //ne marche pas for (int i = 0; i < listeTriable.Count; i++) { Console.WriteLine("L'élement listeTriable[" + i + "] est " + listeTriable[i].ToString()); } for (int i = 0; i < listeTriableTrie.Count; i++) { Console.WriteLine("L'élement listeTriableTrie[" + i + "] est " + listeTriableTrie[i].ToString()); } // sur des personnes ListeTriable <Personne> listeTriablePersonne = new ListeTriable <Personne>(); listeTriablePersonne.Ajouter(new Personne("Christine", "DESMAZES", 51)); listeTriablePersonne.Ajouter(new Personne("Julia", "DESMAZES", 23)); listeTriablePersonne.Ajouter(new Personne("Flora", "DESMAZES", 20)); listeTriablePersonne.Ajouter(new Personne("Pierre", "DESMAZES", 52)); Console.WriteLine("Avant le tri ----------------------------------------"); for (int i = 0; i < listeTriablePersonne.Count; i++) { Console.WriteLine("L'élement " + i + " est " + listeTriablePersonne[i].ToString()); } if (false) // code avant le multitache { // On tri selon la logique spécifiée... ici c'est le critere de l'age listeTriablePersonne.Trier(delegate(Personne p1, Personne p2) { return(p1.Age - p2.Age); }); Console.WriteLine("Après le tri ----------------------------------------"); for (int i = 0; i < listeTriablePersonne.Count; i++) { Console.WriteLine("L'élement " + i + " est " + listeTriablePersonne[i].ToString()); } /* * Avant le tri ---------------------------------------- * L'élement 0 est Christine DESMAZES -> 51 ans * L'élement 1 est Julia DESMAZES -> 23 ans * L'élement 2 est Flora DESMAZES -> 20 ans * L'élement 3 est Pierre DESMAZES -> 52 ans * Après le tri ---------------------------------------- * L'élement 0 est Flora DESMAZES -> 20 ans * L'élement 1 est Julia DESMAZES -> 23 ans * L'élement 2 est Christine DESMAZES -> 51 ans * L'élement 3 est Pierre DESMAZES -> 52 ans * */ } else { listeTriablePersonne.DebuterTri(delegate(Personne p1, Personne p2) { return(p1.Age - p2.Age); }, TriFin); Console.WriteLine("Après le tri ----------------------------------------"); /* * Avant le tri ---------------------------------------- * L'élement 0 est Christine DESMAZES -> 51 ans * L'élement 1 est Julia DESMAZES -> 23 ans * L'élement 2 est Flora DESMAZES -> 20 ans * L'élement 3 est Pierre DESMAZES -> 52 ans * Après le tri ---------------------------------------- * Pierre DESMAZES -> 52 ans * Christine DESMAZES -> 51 ans * Julia DESMAZES -> 23 ans * Flora DESMAZES -> 20 ans* * */ } /* * InitTable(); * System.Console.WriteLine("Tableau initial :"); * AfficherTable(); * TriBulle(); * System.Console.WriteLine("Tableau une fois trié :"); * AfficherTable(); */ /* * * Tableau initial : * 25 , 7 , 14 , 26 , 25 , 53 , 74 , 99 , 24 , 98 , 89 , 35 , 59 , 38 , 56 , 58 , 36 , 91 , 52 , * Tableau une fois trié : * 7 , 14 , 24 , 25 , 25 , 26 , 35 , 36 , 38 , 52 , 53 , 56 , 58 , 59 , 74 , 89 , 91, 98 , 99 , * */ Console.ReadKey(); }