Quicksort in Prolog
1 2 3 4 5 6 7 8 9 10 11 12 13 | #qsort - prolog. Rui Ferreira
qsort_divide([],_,[],[]).
qsort_divide([X|A],P,[X|A1],A2) :- X<P, qsort_divide(A,P,A1,A2).
qsort_divide([X|A],P,A1,[X|A2]) :- X>=P, qsort_divide(A,P,A1,A2).
append([],B,B).
append([H|A],B,[H|NL]) :- append(A,B,NL).
qsort([],[]).
qsort([P|A],NA):- qsort_divide(A,P,A1,A2), qsort(A1,NA1), qsort(A2,NA2), append(NA1,[P|NA2],NA).
:- qsort([1,4,6,7,8,12,-1,0,49,12],NO), print(NO).
|
