Fixes binarySearch's bug

This commit is contained in:
data-man 2018-05-23 12:58:26 +03:00
commit 17b8bb8b47

View file

@ -94,7 +94,7 @@ proc binarySearch*[T, K](a: openArray[T], key: K,
if cmpRes < 1: if cmpRes < 1:
result = i result = i
step = step shr 1 step = step shr 1
if cmpRes != 0: result = -1 if cmp(a[result], key) != 0: result = -1
else: else:
var b = len var b = len
var cmpRes: int var cmpRes: int
@ -108,7 +108,7 @@ proc binarySearch*[T, K](a: openArray[T], key: K,
result = mid + 1 result = mid + 1
else: else:
b = mid b = mid
if result >= len or cmpRes != 0: result = -1 if result >= len or cmp(a[result], key) != 0: result = -1
proc binarySearch*[T](a: openArray[T], key: T): int = proc binarySearch*[T](a: openArray[T], key: T): int =
## binary search for `key` in `a`. Returns -1 if not found. ## binary search for `key` in `a`. Returns -1 if not found.