Question: 
Write a function to find the smallest missing element in a sorted array.


Model's Code:
def smallest_missing(arr, start, end):
    num_set = set(arr)
    for i in range(start, end + 1):
        if i not in num_set:
            return i
    return end + 1



Sample Correct Code:
def smallest_missing(A, left_element, right_element):
    if left_element > right_element:
        return left_element
    mid = left_element + (right_element - left_element) // 2
    if A[mid] == mid:
        return smallest_missing(A, mid + 1, right_element)
    else:
        return smallest_missing(A, left_element, mid - 1)


Asserts:
assert smallest_missing([0, 1, 2, 3, 4, 5, 6], 0, 6) == 7
assert smallest_missing([0, 1, 2, 6, 9, 11, 15], 0, 6) == 3
assert smallest_missing([1, 2, 3, 4, 6, 9, 11, 15], 0, 7) == 0


Tests:
Test 1 of 3: PASS
Test 2 of 3: PASS
Test 3 of 3: PASS

Test 371 of 974: 269/371 (72.50673854447439%): success