Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
17
Task/Quickselect-algorithm/F-Sharp/quickselect-algorithm.fs
Normal file
17
Task/Quickselect-algorithm/F-Sharp/quickselect-algorithm.fs
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
let rec quickselect k list =
|
||||
match list with
|
||||
| [] -> failwith "Cannot take largest element of empty list."
|
||||
| [a] -> a
|
||||
| x::xs ->
|
||||
let (ys, zs) = List.partition (fun arg -> arg < x) xs
|
||||
let l = List.length ys
|
||||
if k < l then quickselect k ys
|
||||
elif k > l then quickselect (k-l-1) zs
|
||||
else x
|
||||
//end quickselect
|
||||
|
||||
[<EntryPoint>]
|
||||
let main args =
|
||||
let v = [9; 8; 7; 6; 5; 0; 1; 2; 3; 4]
|
||||
printfn "%A" [for i in 0..(List.length v - 1) -> quickselect i v]
|
||||
0
|
||||
Loading…
Add table
Add a link
Reference in a new issue