WS Presentations Main Page
:- module(qs,[main/1]).
:- use_module(library(random)).
main(N) :-
initialize(N, List),
format('Sorting ~d elements....~n',[N]),
statistics(runtime,_),
qsort(List,_Result,[]),
statistics(runtime,[_,T])
format('Sorted in ~d milliseconds.~n',[T]).
initialize(0, []).
initialize(N, [E|Es]) :-
N > 0,
N1 is N-1,
random(1, 10000, E),
initialize(N1, L, U, Es).
qsort([],L,L).
qsort([X|Xs],L,L2):-
partition(Xs,X,Left,Right),
qsort(Left,L,[X|L1]),
qsort(Right,L1,L2).
partition([],_,[],[]).
partition([E|R],C,[E|Left1],Right):- E < C, !,
partition(R,C,Left1,Right).
partition([E|R],C,Left,[E|Right1]):- E >= C, !,
partition(R,C,Left,Right1).