From 17b8bb8b47ef77877c5dac17abaf9998a12eea67 Mon Sep 17 00:00:00 2001 From: data-man Date: Wed, 23 May 2018 12:58:26 +0300 Subject: [PATCH] Fixes binarySearch's bug --- lib/pure/algorithm.nim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/pure/algorithm.nim b/lib/pure/algorithm.nim index 35315947d1..98330b6809 100644 --- a/lib/pure/algorithm.nim +++ b/lib/pure/algorithm.nim @@ -94,7 +94,7 @@ proc binarySearch*[T, K](a: openArray[T], key: K, if cmpRes < 1: result = i step = step shr 1 - if cmpRes != 0: result = -1 + if cmp(a[result], key) != 0: result = -1 else: var b = len var cmpRes: int @@ -108,7 +108,7 @@ proc binarySearch*[T, K](a: openArray[T], key: K, result = mid + 1 else: 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 = ## binary search for `key` in `a`. Returns -1 if not found.