qicksort.pl

loading
details
attribute value
description
owner Johannes Waldmann
uploaded 2017-08-17 03:45:07.0
disk size 539 Bytes
downloadable true
type
attribute value
name no_type
processor id 1
description this is the default benchmark type for rejected benchmarks and benchmarks that are not associated with a type.
owning community none
loading contents
%query: qs(i,o).

% mode: qs[i,o]
qs([X|Xs],Ys) :- part(X,Xs,Littles,Bigs),
                 qs(Littles,Ls),
                 qs(Bigs,Bs),
                 app(Ls,[X|Bs],Ys).
qs([],[]).

% mode: part[i,i,o,o]
part(X,[Y|Xs],[Y|Ls],Bs) :- gt(X,Y), part(X,Xs,Ls,Bs).
part(X,[Y|Xs],Ls,[Y|Bs]) :- le(X,Y), part(X,Xs,Ls,Bs).
part(X,[],[],[]).

% mode: app[i,i,o]
app([X|Xs],Ys,[X|Zs]) :- app(Xs,Ys,Zs).
app([],Ys,Ys).

% mode: gt[i,i]
gt(s(X), s(Y)) :- gt(X, Y).
gt(s(0), 0).

% mode: le[i,i]
le(s(X), s(Y)) :- le(X, Y).
le(0, s(0)).
le(0, 0).

popout

content may be truncated. 'popout' for larger text window.

actions get anonymous link download benchmark