/****************************************************************************

Programa que permite realizar el ordenamiento

de los elementos de una lista.

Inteligencia Artificial

Gonzalo Villarreal Farah

Para Turbo Prolog 2.0 de la Borland

****************************************************************************/

 

 

domains

lista=integer*

predicates

bublesort(lista,lista)

swap(lista,lista)

gt(integer,integer)

clauses

bublesort(List,Sorted):-

swap(List,List1),!,

bublesort(List1,Sorted).

bublesort(Sorted,Sorted).

swap([X,Y|Rest],[Y,X|Rest]):-

gt(X,Y).

swap([Z|Rest],[Z|Rest1]):-

swap(Rest,Rest1).

gt(X,Y):-

X>Y.