Skip to content

Instantly share code, notes, and snippets.

@LukaHorvat
Created November 10, 2014 21:28
Show Gist options
  • Save LukaHorvat/025c01deddb4b42c36ab to your computer and use it in GitHub Desktop.
Save LukaHorvat/025c01deddb4b42c36ab to your computer and use it in GitHub Desktop.
mergesort :: Ord a => [a] -> [a]
mergesort [] = []
mergesort [x] = [x]
mergesort (split -> (left, right)) = merge (mergesort left) (mergesort right)
where merge [] rs = rs
merge ls [] = ls
merge (l : ls) (r : rs)
| l < r = l : merge ls (r : rs)
| otherwise = r : merge (l : ls) rs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment