In [16]:
def binary_search(arr, low, high, x):
if low > high:
return -1
mid = (low+high)/2
print "Searching in range: %s, %s" % (low, high)
print "arr[%s]=%s" % (mid, arr[mid])
if arr[mid] == x:
return mid
if arr[mid] < x:
return binary_search(arr, mid+1, high, x)
return binary_search(arr, low, mid -1, x)
In [17]:
arr = range(10)
binary_search(arr, 0, len(arr)-1, 5)
Out[17]:
In [18]:
arr = [0,5]
binary_search(arr, 0, len(arr)-1, 5)
Out[18]:
In [ ]:
def reverse(arr):
for i in range()
def rotate(arr, i):