We usually need to search a value over an array of data. For example, searching whether a book is in the library in a library indexing system. However, examining each element in the array to find the value is too time consuming for a large array. Binary search provides a much faster way to solve the searching problem. Here's how it works. In order to perform binary search, the array to be searched should be first sorted. We start by looking at the middle component. If the value it holds is too high, go to the middle of the bottom half of the array and look again. If the middle components's stored value was too low, go to the middle of the top half instead. Then, repeat this 'split the remainder' step until you find the value you want, or decide that it doesn't exist. The following teaching aid will illustrate how binary search works by an example.