bin_search(3C++)


bin_search -- search a sorted array for an element with a given value

Synopsis

   template <class T>    
   const T* bin_search(     
         const T& val,  
         const T* b,      
         const T* e
   );     
   template <class T>    
   const T* bin_search_r(  
         int (*rel)(const T)*,
         const T)*),  
         const T& val,         
         const T* b,
         const T* e   
   );

Assumptions


(1)
For the plain version, T::operator< defines a total ordering relation on T and the array is sorted w.r.t. that relation.

(2)
For the relational version, rel defines a total ordering relation on T and the array is sorted w.r.t. that relation.

Description

These functions find the rightmost element in a sorted array equal to val and return a pointer to it. They return 0 if no such value exists.

   template <class T>
   const T* bin_search(
       const T& val,
       const T* b,
       const T* e
       );

Uses T::operator< to find the element.

   template <class T>
   const T* bin_search_r(
       int (*rel)(const T)*, const T)*),
       const T& val,
       const T* b,
       const T* e
       );

Uses rel to find the element.

Complexity

If N is the size of the array, then complexity is O(lgN). At most lgN tests of the relation are done.

Notes

Because a Block (see Block(3C++)) can always be used wherever an array is called for, Array Algorithms can also be used with Blocks. In fact, these two components were actually designed to be used together.

References

Array_alg(3C++), Block(3C++)
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004