途中で書いちゃった…
Haskellのクイックソートは綺麗で初めて勉強するときにわかりやすいと思う

quickSort :: (Ord a) => [a] -> [a]
quickSort []   = []
quickSort (x:xs) = quickSort [a | a <- xs , a <= x] ++
             = [x] ++
             = quickSort [b | b <- xs , b > x]