Belt_SortArrayA module for Array sort relevant utiliites
module Int = Belt_SortArrayIntSpecalized when key type is int, more efficient than the generic type
module String = Belt_SortArrayStringSpecalized when key type is string, more efficient than the generic type
val strictlySortedLengthU : 'a array -> ('a -> 'a -> bool) Js.Fn.arity2 -> intstrictlySortedLenght xs cmp return +n means increasing order -n means negative order
strictlySortedLength [|1;2;3;4;3|] (fun x y -> x < y) = 4;;
strictlySortedLength [||] (fun x y -> x < y) = 0;;
strictlySortedLength [|1|] (fun x y -> x < y) = 1;;
strictlySortedLength [|4;3;2;1|] (fun x y -> x < y) = -4;;val isSortedU : 'a array -> ('a -> 'a -> int) Js.Fn.arity2 -> boolval stableSortInPlaceByU : 'a array -> ('a -> 'a -> int) Js.Fn.arity2 -> unitstableSortBy xs cmp
Sort xs in place using comparator cmp, the stable means if the elements are equal, their order will be preserved
val stableSortByU : 'a array -> ('a -> 'a -> int) Js.Fn.arity2 -> 'a arrayval binarySearchByU : 'a array -> 'a -> ('a -> 'a -> int) Js.Fn.arity2 -> intIf value is not found and value is less than one or more elements in array, the negative number returned is the bitwise complement of the index of the first element that is larger than value.
If value is not found and value is greater than all elements in array, the negative number returned is the bitwise complement of (the index of the last element plus 1)
for example, if key is smaller than all elements return -1 since lnot (-1) = 0 if key is larger than all elements return - (len + 1) since lnot (-(len+1)) = len
binarySearchBy [|1;2;3;4;33;35;36|] 33 = 4;;
lnot (binarySearchBy [|1;3;5;7|] 4) = 2;;