Haskell中的排序算法

Lui*_*eis 1 sorting haskell quicksort

我试图在Haskell中实现一个非常简单的排序算法.它编译但不断给我不正确的输出.

这是代码

import Data.List

minimum' :: (Ord a) => [a] -> a
minimum' (x:xs) = foldr (\ x y -> if x <= y then x else y) x xs

qsrt :: (Ord a) => [a] -> [a]
qsrt [] = []
qsrt l@(x:xs) = minimum' l : qsrt xs
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

Rei*_*chs 6

逻辑错误是qsrt采用最小元素l然后跳过x,但x只是l偶然的最小元素,所以你通常跳过错误的元素.