Quickselect algorithm: Difference between revisions
m
→{{header|Haskell}}: Applied hlint, hindent
m (added a category) |
m (→{{header|Haskell}}: Applied hlint, hindent) |
||
Line 1,085:
<lang haskell>import Data.List (partition)
quickselect
:: Ord a
=> Int -> [a] -> a
quickselect k (x:xs)
| otherwise = x▼
| k > l = quickselect (k - l
where
(ys, zs) = partition (< x) xs
l = length ys
main :: IO ()
main = do
let v = [9, 8, 7, 6, 5, 0, 1, 2, 3, 4]
print $ map (
{{out}}
<pre>[0,1,2,3,4,5,6,7,8,9]</pre>
|