RosettaCodeData/Task/Binary-search/Nim/binary-search-2.nim
2016-12-05 23:44:36 +01: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