Files
linguist/samples/Prolog/quicksort.pl
Joshua Peek d2de997fcc Add more Prolog samples
Closes #233
2012-08-20 10:48:36 -05:00

14 lines
373 B
Prolog

partition([], _, [], []).
partition([X|Xs], Pivot, Smalls, Bigs) :-
( X @< Pivot ->
Smalls = [X|Rest],
partition(Xs, Pivot, Rest, Bigs)
; Bigs = [X|Rest],
partition(Xs, Pivot, Smalls, Rest)
).
quicksort([]) --> [].
quicksort([X|Xs]) -->
{ partition(Xs, X, Smaller, Bigger) },
quicksort(Smaller), [X], quicksort(Bigger).