Binary Search Algorithm
This code executes the Binary Search Algorithm.
In order for this algorithm to be applicable, we need to assume that we're dealing with a sorted list to start. As a result, instead of proceeding iteratively through each item in the list, the binary search algorithm continually divides the list into two halves and searches each half for the element.
It can be shown that this algorithm requires a maximum number of iterations along the order of log2(n), where n is the number of items in the list.