Funciones de la biblioteca C -bsearch()
Biblioteca estándar de C - <stdlib.h>
bsearch es una función de la biblioteca estándar de C, utilizada para realizar una búsqueda binaria en una matriz ordenada. Su definición se encuentra en el archivo de encabezado stdlib.h.
Funciones de la biblioteca Cvoid *bsearch(const void *key, const void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *))SobrenitemsRealiza una búsqueda binaria en una matriz de objetos,baseapuntando a la matriz en la que se realiza la búsqueda,keyapuntando al elemento que se va a buscar,sizeespecifica el tamaño de cada elemento en la matriz.
El contenido de la matriz debecomparordenarse de forma ascendente según la función de comparación correspondiente.
Declaración
A continuación se muestra la declaración de la función bsearch().
void *bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
Parámetros
key: puntero al elemento objetivo que se va a buscar.base: puntero a la posición inicial del array.nmemb: número de elementos en el array.size: tamaño de cada elemento (en bytes).compar: puntero a la función de comparación, que se utiliza para comparar dos elementos.
Valor de retorno
- Si se encuentra un elemento coincidente,
bsearchdevuelve un puntero a ese elemento. - Si no se encuentra un elemento coincidente,
bsearchdevuelveNULL。
Función de comparación
La función de comparación debe cumplir con la siguiente firma:
int compar(const void *a, const void *b);
La función devuelve:
- un valor negativo, si
aes menor queb。 - cero, si
aes igual ab。 - un valor positivo, si
aes mayor queb。
Ejemplo
El siguiente ejemplo demuestra el uso de la función bsearch().
Ejemplo
Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:
Found item = 32Otras extensiones