Haskell:写一个漂亮的归并排序
引言
依然是Haskell写漂亮系列,这次通过实现一个归并排序程序并改进,来体现函数式编程的魔力及编程技巧。
mergeSort :: Ord a => [a] -> [a]
mergeSort [] = []
mergeSort [x] = [x]
mergeSort xs = merge (mergeSort l) (mergeSort r)
where (l, r) = splitAt (length xs `div` 2) xs
merge :: Ord a => [a] -> [a] -> [a]
merge [] xs = xs
merge xs [] = xs
merge (x:xs) (y:ys)
| x < y = x : merge xs (y:ys)
| otherwise = y : merge (x:xs) ys
本文通过实现归并排序算法,展示了Haskell语言的简洁与强大。利用函数式编程特性,我们逐步优化了排序过程,体现了Haskell编程的魅力。
1万+

被折叠的 条评论
为什么被折叠?



