import Data.List (partition)
quicksort
:: Ord a
=> [a
] -> [a
]quicksort [] = []
quicksort [x] = [x]
quicksort (pivot : rest) =
let (smaller, notSmaller) = partition (< pivot) rest
in quicksort smaller ++ pivot : quicksort notSmaller
main
= print (quicksort
[6,8,0,54,568,2,17,68,8375,427,57,2,54,5,275,5,1])
aW1wb3J0IERhdGEuTGlzdCAocGFydGl0aW9uKQoKcXVpY2tzb3J0IDo6IE9yZCBhID0+IFthXSAtPiBbYV0KcXVpY2tzb3J0IFtdID0gW10KcXVpY2tzb3J0IFt4XSA9IFt4XQpxdWlja3NvcnQgKHBpdm90IDogcmVzdCkgPSAKICAgIGxldCAoc21hbGxlciwgbm90U21hbGxlcikgPSBwYXJ0aXRpb24gKDwgcGl2b3QpIHJlc3QKICAgIGluICBxdWlja3NvcnQgc21hbGxlciArKyBwaXZvdCA6IHF1aWNrc29ydCBub3RTbWFsbGVyCgptYWluID0gcHJpbnQgKHF1aWNrc29ydCBbNiw4LDAsNTQsNTY4LDIsMTcsNjgsODM3NSw0MjcsNTcsMiw1NCw1LDI3NSw1LDFdKQo=
[0,1,2,2,5,5,6,8,17,54,54,57,68,275,427,568,8375]