All Algorithms implemented in Python
Fixed binary search to correctly recurse to left half and right half