From 4fa28c04ee39be919cf4faf4715aa490b1f28c72 Mon Sep 17 00:00:00 2001 From: Austin Green Date: Sat, 30 Sep 2017 09:51:37 -0400 Subject: [PATCH] Return -1 if target is not in array (#9) * return -1 if target is not in array * return -1 if target is not in array (python) * <= in binary search while loop --- utilities/javascript/binarySearch.js | 14 +++++++------- utilities/python/binary_search.py | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/utilities/javascript/binarySearch.js b/utilities/javascript/binarySearch.js index 4e14ddac..5861eec7 100644 --- a/utilities/javascript/binarySearch.js +++ b/utilities/javascript/binarySearch.js @@ -1,7 +1,7 @@ function binarySearch(arr, target) { let left = 0; let right = arr.length - 1; - while (left < right) { + while (left <= right) { let mid = left + Math.floor((right - left) / 2); if (arr[mid] === target) { return mid; @@ -12,15 +12,15 @@ function binarySearch(arr, target) { right = mid - 1; } } - return left; + return -1; } console.log(binarySearch([1, 2, 3, 10], 1) === 0) console.log(binarySearch([1, 2, 3, 10], 2) === 1) console.log(binarySearch([1, 2, 3, 10], 3) === 2) console.log(binarySearch([1, 2, 3, 10], 10) === 3) -console.log(binarySearch([1, 2, 3, 10], 9) === 3) -console.log(binarySearch([1, 2, 3, 10], 4) === 3) -console.log(binarySearch([1, 2, 3, 10], 0) === 0) -console.log(binarySearch([1, 2, 3, 10], 11) === 3) -console.log(binarySearch([5, 7, 8, 10], 3) === 0) +console.log(binarySearch([1, 2, 3, 10], 9) === -1) +console.log(binarySearch([1, 2, 3, 10], 4) === -1) +console.log(binarySearch([1, 2, 3, 10], 0) === -1) +console.log(binarySearch([1, 2, 3, 10], 11) === -1) +console.log(binarySearch([5, 7, 8, 10], 3) === -1) diff --git a/utilities/python/binary_search.py b/utilities/python/binary_search.py index 1549fa94..f9b7d256 100644 --- a/utilities/python/binary_search.py +++ b/utilities/python/binary_search.py @@ -1,7 +1,7 @@ def binary_search(arr, target): left = 0; right = len(arr) - 1 - while left < right: + while left <= right: mid = left + (right - left) // 2; if arr[mid] == target: return mid @@ -9,14 +9,14 @@ def binary_search(arr, target): left = mid + 1 else: right = mid - 1 - return left + return -1 print(binary_search([1, 2, 3, 10], 1) == 0) print(binary_search([1, 2, 3, 10], 2) == 1) print(binary_search([1, 2, 3, 10], 3) == 2) print(binary_search([1, 2, 3, 10], 10) == 3) -print(binary_search([1, 2, 3, 10], 9) == 3) -print(binary_search([1, 2, 3, 10], 4) == 3) -print(binary_search([1, 2, 3, 10], 0) == 0) -print(binary_search([1, 2, 3, 10], 11) == 3) -print(binary_search([5, 7, 8, 10], 3) == 0) +print(binary_search([1, 2, 3, 10], 9) == -1) +print(binary_search([1, 2, 3, 10], 4) == -1) +print(binary_search([1, 2, 3, 10], 0) == -1) +print(binary_search([1, 2, 3, 10], 11) == -1) +print(binary_search([5, 7, 8, 10], 3) == -1)