L'implémentation donnée ci-dessus est facile à adpater à une liste au
lieu d'un vecteur, car l'itération principale se fait du premier au
dernier élément.
bullesliste.lisp
On remarque les deux clauses de la boucle interne, l'une pour
déterminer le nombre d'itérations et l'autre pour parcourir la liste.
* (defparameter *l* '(4 1 3 1 8 3 44 5 7 3 9 0 0 3 2 44 5 33))
*L*
* (bubblesort2 *l*)
NIL
* *l*
(0 0 1 1 2 3 3 3 3 4 5 5 7 8 9 33 44 44)
* (bubblesort2 *l* :test #'(lambda (x y) (and (oddp x) (evenp y))))
NIL
* *l*
(1 1 3 3 3 3 5 5 7 9 33 0 0 2 4 8 44 44)
* (bubblesort2 *l* :test #'>)
NIL
* *l*
(44 44 33 9 8 7 5 5 4 3 3 3 3 2 1 1 0 0)
* (bubblesort2 *l* :test #'(lambda (x y) (and (oddp x) (evenp y))))
NIL
* *l*
(33 9 7 5 5 3 3 3 3 1 1 44 44 8 4 2 0 0)
*
Irene DURAND
2011-10-14