In [116]:
def search(A, p, q, v):
    if p == q:
        return -1
    mid = (p + q)//2
    if A[mid] == v:
        return mid
    elif A[mid] > v:
        return search(A, p, mid, v)
    return search(A, mid + 1, q, v)

In [119]:
import random 

for i in range(10):
    A, v, index = list(range(-10000, 10000)), random.randrange(-15000, 15000), -1
    print("Looking for v=", v)
    index = search(A, 0, len(A), v)
    if index == -1:
        print ("Not found")
    else:
        print("Found at index=", index, "value=", A[index])
    print ()


Looking for v= 6603
Found at index= 16603 value= 6603

Looking for v= 4639
Found at index= 14639 value= 4639

Looking for v= 12997
Not found

Looking for v= 2344
Found at index= 12344 value= 2344

Looking for v= 3213
Found at index= 13213 value= 3213

Looking for v= 4193
Found at index= 14193 value= 4193

Looking for v= -5327
Found at index= 4673 value= -5327

Looking for v= -7434
Found at index= 2566 value= -7434

Looking for v= -14348
Not found

Looking for v= -260
Found at index= 9740 value= -260


In [ ]: