09/07/03 16:22:29
>>333
% Prolog (2/2)
quicksort([],[]) :- !.
quicksort([X|Xs],Ys) :-
partition(Xs,X,Littles,Gigs),
quicksort(Littles,Ls),
quicksort(Bigs,Bs),
append(Ls,[X|Bs],Ys).
partition([],Y,[],[]) :- !.
partition([X|Xs],Y,[X|Ls],Bs) :- X @=< Y,partition(Xs,Y,Ls,Bs).
partition([X|Xs],Y,Ls,[X|Bs]) :- X @> Y,partition(Xs,Y,Ls,Bs).