summaryrefslogtreecommitdiff
path: root/AlgoDesignAndTechniqueEdxPython/sources/binary_search.py
blob: 5f5128958c1b592ab9f75f4f3eb8203ff6eb9335 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Uses python3
import sys

def binarySearchRecursive(a, low, high, key):
    if high < low:
        return -1
    mid = (int) (low + (high - low) / 2)
    if key == a[mid]:
        return mid
    elif key < a[mid]:
        return binarySearchRecursive(a, low, mid - 1, key) 
    else:
        return binarySearchRecursive(a, mid + 1, high, key)


def binarySearch(a, key):
    return binarySearchRecursive(a, 0, len(a) - 1, key)

if __name__ == '__main__':
    input = sys.stdin.read()
    data = list(map(int, input.split()))
    n = data[0]
    m = data[n + 1]
    a = data[1 : n + 1]
    for x in data[n + 2:]:
        # replace with the call to binary_search when implemented
        print(binarySearch(a, x), end = ' ')