add bin search function

This commit is contained in:
2024-12-26 15:10:33 +00:00
parent 06ac5ddd49
commit e98c5b65e9
2 changed files with 24 additions and 0 deletions

23
fcore/bin-search.sml Normal file
View File

@@ -0,0 +1,23 @@
structure BinSearch =
struct
local
fun helpFind (findNum, vec, low, high) =
if high >= low then
let
val mid = low + ((high - low) div 2)
val curNum = Vector.sub (vec, mid)
in
if curNum = findNum then
mid
else if curNum < findNum then
helpFind (findNum, vec, mid + 1, high)
else
helpFind (findNum, vec, low, mid - 1)
end
else
~1
in
fun find (findNum, vec) =
helpFind (findNum, vec, 0, Vector.length vec - 1)
end
end

View File

@@ -2,6 +2,7 @@ $(SML_LIB)/basis/basis.mlb
(* fcore *)
fcore/quad-tree.sml
fcore/bin-search.sml
ann
"allowVectorExps true"