Program Listing for File BinarySearch.h
↰ Return to documentation for file (ADS/search/BinarySearch.h)
/*--------------------------------------------------------------------------*/
/*-------------------------- File BinarySearch.h ---------------------------*/
/*--------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
/*----------------------------- DEFINITIONS --------------------------------*/
/*--------------------------------------------------------------------------*/
#ifndef __ADS_BinarySearch
#define __ADS_BinarySearch
/* self-identification: #endif constant */
/*--------------------------------------------------------------------------*/
/*------------------------------ INCLUDES ----------------------------------*/
/*--------------------------------------------------------------------------*/
#include "ADS/Contract.h"
#include "ADS/sort/Sorted.h"
#include "ADS/tree/BinaryTree.h"
#include <algorithm>
#include <cstddef>
#include <functional>
#include <vector>
/*--------------------------------------------------------------------------*/
/*--------------------------- NAMESPACE ------------------------------------*/
/*--------------------------------------------------------------------------*/
namespace ADS {
template< class T , class F >
long binarySearch( const std::vector< T > & A , const T & v , F && trace );
template< class T >
long binarySearch( const std::vector< T > & A , const T & v );
template< class T >
BinaryTree< T > * decisionTree( const std::vector< T > & A );
template< class T , class C = std::less<> >
std::size_t lowerBound( const std::vector< T > & A , const T & v ,
std::size_t lo , std::size_t hi , C less = C() );
template< class T , class C = std::less<> >
std::size_t lowerBound( const std::vector< T > & A , const T & v ,
C less = C() );
template< class T , class C = std::less<> >
std::size_t upperBound( const std::vector< T > & A , const T & v ,
C less = C() );
template< class T , class C = std::less<> >
std::size_t gallopSearch( const std::vector< T > & A , const T & v ,
C less = C() );
/*--------------------------------------------------------------------------*/
} // end( namespace ADS )
/*--------------------------------------------------------------------------*/
/*-------------------------- IMPLEMENTATION --------------------------------*/
/*--------------------------------------------------------------------------*/
#include "ADS/search/impl/BinarySearch.tpp"
/*--------------------------------------------------------------------------*/
#endif /* BinarySearch.h included */
/*--------------------------------------------------------------------------*/
/*------------------------ End File BinarySearch.h -------------------------*/
/*--------------------------------------------------------------------------*/