  The algorithm you're describing is known as the binary search algorithm. It's a efficient algorithm for finding an element in a sorted list. Here's a Python implementation of the binary search algorithm:

```
def binary_search(arr, target):
    low = 0
    high = len(arr) - 1

    while low <= high:
        mid = (low + high) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            low = mid + 1
        else:
            high = mid - 1

    return -1
```

This function takes two arguments: `arr` which is the list of elements and `target` which is the element we're looking for. It returns the index of the element in the list if it exists, or -1 if it doesn't.

The function works by dividing the list in half and finding the middle element. If the middle element is the target, we return its index. If the target is smaller than the middle element, we know it must be in the lower half of the list, so we set the high index to the middle index minus 1. If the target is larger than the middle element, we set the low index to the middle index plus 1. We repeat this process until the low index exceeds the high index, at which point we return -1 because the element was not found.

The time complexity of this algorithm is O(log n), where n is the length of the list, because we're dividing the list in half each time we search.