RosettaCodeData/Task/Binary-search/Nim/binary-search-2.nim
2023-07-01 13:44:08 -04:00

7 lines
234 B
Nim

proc binarySearch[T](a: openArray[T], key: T): int =
var b = len(a)
while result < b:
var mid = (result + b) div 2
if a[mid] < key: result = mid + 1
else: b = mid
if result >= len(a) or a[result] != key: result = -1