Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- particiona :: (Ord t)=> [t] -> ([t], [t])
- particiona [] = ([], [])
- particiona [a] = ([a],[])
- particiona (a:b:c) = ([a]++as, ([b]++bs))
- where (as, bs) = particiona c
- compara :: (Ord t)=> [t] -> [t] -> [t]
- compara [] b = b
- compara a [] = a
- compara (a:as) (b:bs)|a<b = [a] ++ (compara as ([b]++bs))
- |otherwise = [b] ++ (compara ([a]++as) bs)
- mergesort :: (Ord t)=> [t] -> [t]
- mergesort [] = []
- mergesort a = compara (mergesort (fst(particiona a))) (mergesort (snd(particiona a)))
Advertisement
Add Comment
Please, Sign In to add comment