Defines classes to support a variety of Search algorithms.