added exponential searching algomaster
@ -0,0 +1,33 @@ | |||||
def search(arr, l, r, x): | |||||
if r >= l: | |||||
m = (l+r)/2 | |||||
if arr[m] == x: | |||||
return m | |||||
if arr[m] > x: | |||||
return search(arr, l, m-1, x) | |||||
else: | |||||
return search(arr, m, r, x) | |||||
return -1 | |||||
def exponentialSearch(arr, n, x): | |||||
if arr[0] == x: | |||||
return 0 | |||||
i = 1 | |||||
while i<n and arr[i] <=x: | |||||
i = i*2 | |||||
return search(arr, i/2, min(n, i), x) | |||||
arr = [2, 3, 4, 7, 10, 40] | |||||
n = len(arr) | |||||
x = 10 | |||||
r = exponentialSearch(arr, n, x) | |||||
if r == -1: | |||||
print "Element not found" | |||||
else: | |||||
print "Element is present at index %d" %(r) |