Question: 
Write a python function to find the minimum element in a sorted and rotated array.


Model's Code:
def find_Min(arr, low, high):
    if high < low:
        return arr[0]
    if high == low:
        return arr[low]
    
    mid = (low + high) // 2

    if mid < high and arr[mid + 1] < arr[mid]:
        return arr[mid + 1]
    if mid > low and arr[mid] < arr[mid - 1]:
        return arr[mid]

    if arr[high] > arr[mid]:
        return find_Min(arr, low, mid - 1)
    return find_Min(arr, mid + 1, high)



Sample Correct Code:
def find_Min(arr,low,high): 
    while (low < high): 
        mid = low + (high - low) // 2;   
        if (arr[mid] == arr[high]): 
            high -= 1; 
        elif (arr[mid] > arr[high]): 
            low = mid + 1; 
        else: 
            high = mid; 
    return arr[high]; 


Asserts:
assert find_Min([1,2,3,4,5],0,4) == 1
assert find_Min([4,6,8],0,2) == 4
assert find_Min([2,3,5,7,9],0,4) == 2


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

Test 225 of 974: 165/225 (73.33333333333333%): success