The function bsearch () in C

Void function * bsearch (const void * key, const void * base, nitems, size, int (* compar) (const void *, const void *)) looks for an array of nitems objects, its original member is point to by base, for a member that connects the object pointed to by the key. The size of each array element is determined by size.

The function bsearch () in C

Void function * bsearch (const void * key, const void * base, nitems, size, int (* compar) (const void *, const void *)) looks for an array of nitems objects, its original member is point to by base , for a member that connects the object pointed to by the key . The size of each array element is determined by size .

The contents of the array should be in ascending order corresponding to the comparison function referenced by compar.

The bsearch () function, which stands for Binary Search, is based on the idea of ​​Binary Search algorithm (Binary Search), you can refer to this algorithm in Binary Search Algorithm.

Declare the function bsearch () in C

Below is the declaration for bsearch () in C:

 void * bsearch ( const void * key , const void * base , size_t nitems , size_t size , int (* compar )( const void *, const void *)) 

Parameters

key : This is the pointer to an object that acts as a key to search, is cast as a void *.

base : This is the pointer to the first object of the array, where the search is performed, cast in the form of a void *.

nitems : This is the number of elements in the array pointed to by the base.

size : This is the size (byte value) of each element in the array.

compare : This is a function to compare two elements.

Returns the value

This function returns a pointer to an entry in the array that connects to the search key. If the key is not found, the function returns a NULL pointer.

For example

The following C program illustrates the usage of bsearch () in C:

 #include #include int cmpfunc ( const void * a , const void * b ) { return ( *( int *) a - *( int *) b ); } int values [] = { 5 , 20 , 29 , 32 , 63 }; int main () { int * item ; int key = 32 ; /* su dung ham bsearch() de tim gia tri 32 trong mang */ item = ( int *) bsearch (& key , values , 5 , sizeof ( int ), cmpfunc ); if ( item != NULL ) { printf ( "Da tim thay phan tu co gia tri = %dn" , * item ); } else { printf ( "Khong tim thay phan tu co gia tri = %dn" , * item ); } return ( 0 ); } 

Compiling and running the above C program will result:

The function bsearch () in C Picture 1The function bsearch () in C Picture 1

According to Tutorialspoint

Previous lesson: Function system () in C

Next lesson: qsort () function in C

3.5 ★ | 2 Vote