К основному контенту

Сообщения

Сообщения за августа 15, 2018

Пузырьковая шейкер сортировка

let shakerSort () = let a = [| 9 ; 8 ; 7 ; 6 ; 5 ; 4 ; 3 ; 2 ; 1 ; 0 |] let mutable l = 1 let mutable r = a . Length - 1 let mutable k = r let mutable x = a .[ 0 ] let mutable cond = true while cond do for j = r downto l do if a .[ j - 1 ] > a .[ j ] then x <- a .[ j - 1 ]; a .[ j - 1 ] <- a .[ j ]; a .[ j ] <- x ; k <- j else () l <- k + 1 for j = l to r do if a .[ j - 1 ] > a .[ j ] then x <- a .[ j - 1 ]; a .[ j - 1 ] <- a .[ j ]; a .[ j ] <- x ; k <- j else () r <- k - 1 cond <- ( l < r ) printfn "%A" a do shakerSort ()

Сортировка простым выбором

let sortBySimpleSelection () = let a = [| 9 ; 8 ; 7 ; 6 ; 5 ; 4 ; 3 ; 2 ; 1 ; 0 |] for i = 0 to a . Length - 2 do let mutable k = i let mutable x = a .[ k ] for j = i + 1 to a . Length - 1 do if a .[ j ] < x then k <- j ; x <- a .[ k ] else () a .[ k ] <- a .[ i ] a .[ i ] <- x printfn "%A" a do sortBySimpleSelection ()