recursive binary search in python
In my previous post, I showed the iterative way to implement binary search algorithm in Python. Here comes the recursive way.
def binary_search_recursive(li, left, right, key): while True: if left > right: return -1 mid = (left + right) / 2 if li[mid] == key: return mid if li[mid] > key: right = mid - 1 else: left = mid + 1 return binary_search_recursive(li, left, right, key) if __name__ == "__main__": li = [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12] left = 0 right = len(li) for key in [8, 6, 1, 12, 7]: index = binary_search_recursive(li, left, right, key) print key, index
Comments