"How would you implement binary search on a sorted array, and what are its time and space complexity characteristics?"