From 07a6d6b5063d1eb68195f8095ef9eaa83d1a3289 Mon Sep 17 00:00:00 2001 From: Aditya Bhargava Date: Fri, 18 Nov 2022 16:33:17 -0600 Subject: [PATCH] fix broken case in binary search (python) and remove unneeded base cases --- .../python/05_binary_search_recursive.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/03_recursion/python/05_binary_search_recursive.py b/03_recursion/python/05_binary_search_recursive.py index 7791559..3ed0b23 100644 --- a/03_recursion/python/05_binary_search_recursive.py +++ b/03_recursion/python/05_binary_search_recursive.py @@ -1,15 +1,18 @@ def binary_search(arr, target): if not arr: - return -1 - if len(arr) == 1 and arr[0] == target: - return arr[0] - if len(arr) == 1 and arr[0] != target: return -1 - low = 0 - high = len(arr) - 1 + + low = 0 + high = len(arr) - 1 mid = (low + high) // 2 - if arr[mid] > target: + if arr[mid] == target: + return target + elif arr[mid] > target: return binary_search(arr[:mid], target) else: - return binary_search(arr[mid+1:], target) \ No newline at end of file + return binary_search(arr[mid+1:], target) + + +print(binary_search([6, 7, 8, 9, 10], 8)) +print(binary_search([6, 7, 8, 9, 10], 6))