quicksort([],[]).
quicksort([H|T], S) :- 
  partition(H, [H|T], Smaller, Equal, Larger),
  quicksort(Smaller, SS),
  quicksort(Larger, LS),
  append(Equal, LS, S1),
  append(SS, S1, S).
