?-use_module(library(lists)).
/* QuickSort

Pseudo QuickSort :
signature :qs1(+Liste_binaire,?Liste)


*/

qs1([],[]).
qs1([H|L],T):-
	p(L,H,P1,P2),
	qs1(P1,T1),
	qs1(P2,T2),
	append(T1,[H|T2],T).

p([],_,[],[]).
p([E1|L],H,[E1|P1],P2):-
	E1 @=< H,
	p(L,H,P1,P2).
p([E1|L],H,P1,[E1|P2]):-
	E1 @> H,
	p(L,H,P1,P2).

/* Essais
 [-'QuickSort'].
qs1([e,f,d,a,s],L).
qs1([a,b,c],L).
qs1([a],L).


*/
