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
4 Mistakes to Avoid When Setting Up a Password Manager
How to avoid grainy photos on smartphones
11 common mistakes when building a PC and how to avoid them
Build DTCL Void squad season 9
7 mistakes on social networks to avoid if you want to protect your privacy
4 Android features to help avoid distractions at work