Implementation of two different strategies for calculation of search length.

```SearchLength::getSearchLength()``` is pure virtual because I want this class to be an abstract base class that does not implement an algorithm to compute the search length. ```SearchLength``` is the interface that all derived classes have to implement.