Bonjour,
le tri à bulles
.
Il y a plusieurs méthodes de tri : ici l'idée est la suivante : je déclare un prédicat qui vérifie si un
élément est plus grand qu'un autre. Ensuite dans une liste je cherche deux éléments adjacents tel que le
prédicat plus grand donne vrai, alors je les échange et je crée une Liste1 au fur et à mesure et à la fin
Liste contient tous les élément de la première liste mais triés. Si il n'y a plus d'éléments adjacents pour
lesquels plus grand est vrai, cela veut dire que ma liste est triée
je ne trouve pas comment faire pour faire un code pour introduire append ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 une_bulle([X], 0, [X]). une_bulle([X, Y | R], 1, [Y | L]) :- X > Y, !, une_bulle([X | R], _A, L). une_bulle([X, Y | R], A, [X | L]) :- une_bulle([Y | R], A, L). tri_bulle(L1, L) :- une_bulle(L1, A, L2), ( A == 0, L = L2 ; tri_bulle(L2, L)).
Partager