In [ ]:
a = [0, 1, 2, 3, 4, 6, 7, 8, 9, 10]
l, r = 0, len(a) - 1

target = 5

while l < r:
    mid = (l + r + 1) // 2
    if a[mid] < target:
        l = mid
    else :
        r = mid - 1

l
Out[ ]:
4
In [ ]:
l, r = 0, len(a) - 1

while l < r:
    mid = (l + r) // 2
    if a[mid] > target:
        r = mid
    else :
        l = mid + 1
        
l
Out[ ]:
5
In [ ]:
a = [2, 3, 0, 4, 1, 10, 6, 8, 9, 7]
l, r = 0, len(a) - 1

while l < r:
    mid = (l + r) // 2
    if a[mid] > target:
        r = mid
    else :
        l = mid + 1
        
l
Out[ ]:
5