From 0ff2b532b1c886c8d1abb3ec489e250855a416ed Mon Sep 17 00:00:00 2001 From: Kavin18 <148603725+Kavin56@users.noreply.github.com> Date: Thu, 16 May 2024 17:12:29 +0530 Subject: [PATCH] Create Meta Binary Search.py --- Searching algorithms/Meta Binary Search.py | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 Searching algorithms/Meta Binary Search.py diff --git a/Searching algorithms/Meta Binary Search.py b/Searching algorithms/Meta Binary Search.py new file mode 100644 index 0000000..db4b14b --- /dev/null +++ b/Searching algorithms/Meta Binary Search.py @@ -0,0 +1,27 @@ +import math +def bsearch(A, key_to_search): + + n = len(A) + lg = int(math.log2(n-1)) + 1; + + pos = 0 + for i in range(lg - 1, -1, -1) : + if (A[pos] == key_to_search): + return pos + + + new_pos = pos | (1 << i) + + + if ((new_pos < n) and + (A[new_pos] <= key_to_search)): + pos = new_pos + + return (pos if(A[pos] == key_to_search) else -1) + +if __name__ == "__main__": + + A = list(map(int,input("Enter the array elements: ").split())) + key = int(input("enter the number to search: ")) + print( bsearch(A, key)) +