The function bsearch () in C
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:
According to Tutorialspoint
Previous lesson: Function system () in C
Next lesson: qsort () function in C
You should read it
Maybe you are interested
Dining room design mistakes to avoid
6 mistakes to avoid when using Gmail at work
How to Avoid Post-Tracking Targeted Ads After Shopping Online
The Truth About Salt: How to Avoid One of the World's Most Dangerous Silent Killers
8 Mistakes to Avoid on WhatsApp
10 Important Mistakes to Avoid When Maintaining Your Computer