AlbertMourato

Untitled

Mar 17th, 2016
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. particiona :: (Ord t)=> [t] -> ([t], [t])
  2. particiona [] = ([], [])
  3. particiona [a] = ([a],[])
  4. particiona (a:b:c) = ([a]++as, ([b]++bs))
  5.  where (as, bs) = particiona c
  6.  
  7. compara :: (Ord t)=> [t] -> [t] -> [t]
  8. compara [] b = b
  9. compara a [] = a
  10. compara (a:as) (b:bs)|a<b = [a] ++ (compara as ([b]++bs))
  11.                      |otherwise = [b] ++ (compara ([a]++as) bs)
  12.  
  13. mergesort :: (Ord t)=> [t] -> [t]
  14. mergesort [] = []
  15. mergesort a = compara (mergesort (fst(particiona a)))  (mergesort (snd(particiona a)))
Advertisement
Add Comment
Please, Sign In to add comment