Here is the Python code that implements 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  # not found
```
Here's an explanation of the code:

* We initialize `low` to 0, which is the starting index of the list, and `high` to the length of the list minus 1, which is the ending index of the list.
* We loop until `low` is greater than `high`.
* In each iteration, we calculate the midpoint `mid` of the current range `[low, high]`.
* We compare the value at the midpoint `arr[mid]` with the target value `target`.
* If they are equal, we return the midpoint index.
* If `arr[mid]` is less than `target`, we know that the target value must be in the second half of the list, so we set `low` to `mid + 1`.
* If `arr[mid]` is greater than `target`, we know that the target value must be in the first half of the list, so we set `high` to `mid - 1`.
* If the loop ends without finding the target value, we return -1 to indicate that it was not found.

As for your question, this algorithm is called **Binary Search**. It is a fast and efficient algorithm for finding an element in a sorted list, with a time complexity of O(log n), where n is the length of the list.