Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,19 @@
|
|||
open System
|
||||
|
||||
let show data = data |> Array.iter (printf "%d ") ; printfn ""
|
||||
let split (data: int[]) pos = data.[0..pos], data.[(pos+1)..]
|
||||
|
||||
let flip items pos =
|
||||
let lower, upper = split items pos
|
||||
Array.append (Array.rev lower) upper
|
||||
|
||||
let pancakeSort items =
|
||||
let rec loop data limit =
|
||||
if limit <= 0 then data
|
||||
else
|
||||
let lower, upper = split data limit
|
||||
let indexOfMax = lower |> Array.findIndex ((=) (Array.max lower))
|
||||
let partialSort = Array.append (flip lower indexOfMax |> Array.rev) upper
|
||||
loop partialSort (limit-1)
|
||||
|
||||
loop items ((Array.length items)-1)
|
||||
Loading…
Add table
Add a link
Reference in a new issue