From ccfdcf6675b9454bcae8d5e6439c6da7eb7f352a Mon Sep 17 00:00:00 2001 From: Powwow84 Date: Sun, 14 May 2023 12:56:30 -0700 Subject: [PATCH] binary search HW --- search.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/search.py b/search.py index 1c03df0..3466559 100644 --- a/search.py +++ b/search.py @@ -19,3 +19,46 @@ Output: 0 Explanation: -1 exists in the list and its index is 0 """ +def search_list(data_list, target): + first = 0 + last = len(data_list) -1 + + while first <= last : + mid_idx = (first + last) // 2 + if data_list[mid_idx] == target: + return(f"{target} found at index {mid_idx} ") + + if data_list[mid_idx] < target: + first = mid_idx + 1 + + if data_list[mid_idx] > target: + last = mid_idx -1 + + return mid_idx + +li = [ 1, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59] + +# print(search_list(li, 17)) + + +def recursion_search(data_list, first, last, target): + if first > last: + return f'Could not find {target}' + + mid = (first + last) //2 + mid_val = data_list[mid] + + if mid_val == target: + return print(f"{target} found at index {mid}") + + elif mid_val > target: + last = mid - 1 + return recursion_search(data_list, first, mid -1, target) + + elif mid_val < target: + first = mid + 1 + return recursion_search(data_list, mid + 1, last, target) + + + +print(recursion_search(li, 0, len(li) - 1,29)) \ No newline at end of file