Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,16 @@
|
|||
-- Same merge as in Merge Sort
|
||||
merge :: (Ord a) => [a] -> [a] -> [a]
|
||||
merge [] ys = ys
|
||||
merge xs [] = xs
|
||||
merge (x : xs) (y : ys)
|
||||
| x <= y = x : merge xs (y : ys)
|
||||
| otherwise = y : merge (x : xs) ys
|
||||
|
||||
strandSort :: (Ord a) => [a] -> [a]
|
||||
strandSort [] = []
|
||||
strandSort (x : xs) = merge strand (strandSort rest) where
|
||||
(strand, rest) = extractStrand x xs
|
||||
extractStrand x [] = ([x], [])
|
||||
extractStrand x (x1 : xs)
|
||||
| x <= x1 = let (strand, rest) = extractStrand x1 xs in (x : strand, rest)
|
||||
| otherwise = let (strand, rest) = extractStrand x xs in (strand, x1 : rest)
|
||||
Loading…
Add table
Add a link
Reference in a new issue