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