Update all new Tasks
This commit is contained in:
parent
00a190b0a6
commit
91df62d461
5697 changed files with 93386 additions and 804 deletions
13
Task/Quickselect-algorithm/Haskell/quickselect-algorithm.hs
Normal file
13
Task/Quickselect-algorithm/Haskell/quickselect-algorithm.hs
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
import Data.List (partition)
|
||||
|
||||
quickselect :: Ord a => Int -> [a] -> a
|
||||
quickselect k (x:xs) | k < l = quickselect k ys
|
||||
| k > l = quickselect (k-l-1) zs
|
||||
| otherwise = x
|
||||
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 (\i -> quickselect i v) [0 .. length v-1]
|
||||
Loading…
Add table
Add a link
Reference in a new issue