From 0d7e369142fb2652dfc8863f8320c2ad7584bf17 Mon Sep 17 00:00:00 2001 From: shubham <124447665+s7917@users.noreply.github.com> Date: Wed, 11 Oct 2023 10:59:10 +0530 Subject: [PATCH] Create Exponetialsearch.py --- .../Searching Techniques/Exponetialsearch.py | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 Codes/Searching Techniques/Exponetialsearch.py diff --git a/Codes/Searching Techniques/Exponetialsearch.py b/Codes/Searching Techniques/Exponetialsearch.py new file mode 100644 index 0000000..0b81d29 --- /dev/null +++ b/Codes/Searching Techniques/Exponetialsearch.py @@ -0,0 +1,30 @@ +def binary_search(arr, left, right, x): + while left <= right: + mid = left + (right - left) // 2 + if arr[mid] == x: + return mid + elif arr[mid] < x: + left = mid + 1 + else: + right = mid - 1 + return -1 + +def exponential_search(arr, x): + if arr[0] == x: + return 0 + + n = len(arr) + i = 1 + while i < n and arr[i] <= x: + i *= 2 + + return binary_search(arr, i // 2, min(i, n - 1), x) + +# Example usage +arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +x = 7 +result = exponential_search(arr, x) +if result != -1: + print(f"Element {x} found at index {result}") +else: + print(f"Element {x} not found in the array")