Algo de Tri en C [RECHERCHE] - C - Programmation
Marsh Posté le 27-02-2005 à 17:38:08
google tu connais ?
Marsh Posté le 27-02-2005 à 17:39:10
Le tri à bulle est le plus simple, tu peux le trouver toi-même. En général quand on cherche soi-même un algo de tri, on tombe d'abord sur le tri à bulle
Marsh Posté le 27-02-2005 à 18:09:57
_bryce_ a écrit : Bonjour |
Tri à bulle
Tu balayes ton tableau. Si l'élément que tu traites n'est pas à sa place par rapport à l'élément suivant tu inverses les deux éléments.
Tu recommence le balayage complet tant que tu as eu au-moins une inversion (tu peux optimiser ce tri en mémorisant l'endroit de la première inversion et en ne recommençant le balayage qu'à partir de cet endroit lors de l'itération suivante)
Tri rapide
Tu découpes ton tableau en 2 parties à partir d'un pivot.
Tu balayes la partie de gauche à la recherche d'un élément plus grand que le pivot
Tu balayes la partie de droite à la recherche d'un élément plus petit que le pivot
Dès que t'as trouvé les deux éléments tu les intervertis.
Dès que t'as tout balayé à gauche et à droite, si la partie de gauche a plus d'un élément tu relances l'algo complet (récursivité) sur la partie de gauche. Idem pour la droite.
Tri fusion
Tu découpes ton tableau en 2 puis encore en 2 etc jusqu'à arriver à n paquets de 2 éléments.
Pour chaque paquet de deux éléments, tu tries les deux éléments l'un par rapport à l'autre.
Ensuite, tu prends les n paquets 2 à 2 et tu les fusionnes ensemble. Chaque fusion te redonne un paquet. Tu recommences alors la fusion sur les nouveaux paquets jusqu'à ce que tu n'aies plus qu'un paquet totalement trié.
Marsh Posté le 27-02-2005 à 22:41:39
http://www.csse.monash.edu.au/~llo [...] Sort/Heap/
http://ciips.ee.uwa.edu.au/~morris [...] heaps.html
http://dept-info.labri.u-bordeaux. [...] _2000.html
http://www.cs.bham.ac.uk/~mhe/foundations2/node69.html
quelques liens...
le tri fusion, c'est bien les heap sort??
dans ce cas, l'algo c'est plutot:
tu trie des tas de 3.
avec deux tas de 3, tu fais un tas trié de 2*3+1 = 7
avec deux tas de 7, tu fais un tas trié de 2*7+1 = 15
jusqu a ce que t'es tout triés.
enfin lis les liens, c'est plus clair
Marsh Posté le 01-03-2005 à 14:31:58
slvn a écrit : http://www.csse.monash.edu.au/~llo [...] Sort/Heap/ |
Pour moi, le tri fusion c'est plutôt le "merge sort"
http://www.csse.monash.edu.au/~llo [...] Sort/Merge
Marsh Posté le 27-02-2005 à 17:36:39
Bonjour
je recherche les algo de tri suivant:
- Rapide
- Fusion
- Bulle
Merci d'avance
PS: Une recherche m'aurai surement donné une réponse mais si quelqu'un a la gentillesse de me les faire parvenir ça serai vraiment sympa.