Quickselect algorithm: Difference between revisions

m
→‎{{header|Haskell}}: Flipped type for simpler use.
m (→‎{{header|Haskell}}: Flipped type for simpler use.)
Line 1,087:
quickselect
:: Ord a
=> Int[a] -> [a]Int -> a
quickselect k (x:xs) k
| k < l = quickselect k ys k
| k > l = quickselect zs (k - l - 1) zs
| otherwise = x
where
Line 1,098:
main :: IO ()
main =
print $
((fmap . flip quickselect) <*> zipWith const [0 ..]) $
[9, 8, 7, 6, 5, 0, 1, 2, 3, 4])</lang>
{{out}}
<pre>[0,1,2,3,4,5,6,7,8,9]</pre>
9,655

edits