Skip to content

Instantly share code, notes, and snippets.

@chomado
Created June 19, 2013 18:11
Show Gist options
  • Save chomado/5816495 to your computer and use it in GitHub Desktop.
Save chomado/5816495 to your computer and use it in GitHub Desktop.
quicksort :: (Ord a) => [a] -> [a]
quicksort [] = []
quicksort (x : xs) =
let smallerOrEqual = [a | a <- xs, a <= x]
larger = [a | a <- xs, a > x]
in quicksort smallerOrEqual ++ [x] ++ quicksort larger
quicksort' :: (Ord a) => [a] -> [a]
quicksort' [] = []
quicksort' (x : xs) =
let smallerOrEqual = filter (<= x) xs
larger = filter (> x) xs
in quicksort' smallerOrEqual ++ [x] ++ quicksort' larger
quicksort'' :: (Ord a) => [a] -> [a]
quicksort'' [] = []
quicksort'' (x : xs) = quicksort smallerOrEqual ++ [x] ++ quicksort larger
where smallerOrEqual = [a | a <- xs, a <= x]
larger = [b | b <- xs, b > x]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment