Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Haskell mergesort

Name: Anonymous 2012-04-24 5:29

Haskell newbie here, how is my mergesort?


merge :: (Ord a) => [a] -> [a] -> [a]
merge [] ys = ys
merge xs [] = xs
merge (x:xs) (y:ys) = if (x < y) then x:(merge xs (y:ys)) else y:(merge (x:xs) ys)

mergeSort :: (Ord a) => [a] -> [a]
mergeSort []  = []
mergeSort [x] = [x]
mergeSort xs  = let mid   = (length xs) `div` 2
                    parts = (splitAt mid xs)
                    left  = mergeSort (fst parts)
                    right = mergeSort (snd parts)
                in merge left right

Name: Anonymous 2012-04-24 13:36

>>11
It's shit, son.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List