Tri de liste chainée
RezzA
-
tafiscobar Messages postés 1281 Statut Contributeur -
tafiscobar Messages postés 1281 Statut Contributeur -
Je recherche un algo de trie pour un liste chainée : mettre le plus grand en tête.
merci
merci
2 réponses
-
Généralement on ne tri jamais une liste chainee lorsqu'elle est construite. Ce que l'on fait c'est que lorsqu'on ajoute un element à cette liste, on le compare à ceux qui existe dejà et on le place au bon endroit.
Au cas où tu veuilles vraiment trier, tu peux extraire chaque element et le mettre dans une nouvelle liste chainée en le placant à la bonne place.
Ou alors tu prends le premier element de ta liste chainée et tu le compare au deuxième et si ca ne va pas tu les intervertis, tu passe au suivant et tu fait pareil ... Tu fait cette manipe jusqu'à la fin de la chaine et tu comptabilise le nombre de permutations que tu as fait. Ensuite tu recommences jusqu'a ce que tu n'ai fait aucune permutation.
ex:
1 2 3 1 3 2
2 3 1 3 2 1
3 2 3 2 1 1
3 3 2 2 1 1
Tu peux aussi commencer par la fin mais c'est parfois moins rapide.
ex:
1 2 3 1 3 2
3 1 2 3 1 2
3 3 1 2 2 1
3 3 2 1 2 1
3 3 2 2 1 1
---------
Peguinette -
il t'as repondu mais en tout cas, je te consille la premiere solution plus rapide et qui demande moins de lignes de code.
tafiscobar