bsearch(3) Library Functions Manual bsearch(3) NOMBRE bsearch - busqueda binaria en un arreglo (array) ordenado BIBLIOTECA Biblioteca Estandar C (libc, -lc) SINOPSIS #include void *bsearch(const void key[.size], const void base[.size * .n], size_t n, size_t size, typeof(int (const void [.size], const void [.size])) *compar); DESCRIPCION The bsearch() function searches an array of n objects, the initial member of which is pointed to by base, for a member that matches the object pointed to by key. The size of each member of the array is specified by size. El contenido del arreglo debe estar ordenado en orden ascendente segun la funcion de comparacion referenciada por compar. Se espera que la rutina compar tenga dos argumentos que apunten al objeto key y a un elemento del arreglo, en ese orden, y debe devolver un entero menor, igual o mayor que cero si resulta que el objeto key es menor, igual o mayor (respectivamente) que el elemento del arreglo. VALOR DEVUELTO La funcion bsearch() devuelve un puntero al elemento del arreglo que coincide, o NULL si no hay coincidencia. Si hay multiples elementos que coinciden con la clave, el elemento devuelto esta sin determinar. ATRIBUTOS Para obtener una explicacion de los terminos usados en esta seccion, vease attributes(7). +-----------------------------+--------------------+-------------------+ |Interfaz | Atributo | Valor | +-----------------------------+--------------------+-------------------+ |bsearch() | Seguridad del hilo | Multi-hilo seguro | +-----------------------------+--------------------+-------------------+ ESTANDARES C11, POSIX.1-2008. HISTORIAL POSIX.1-2001, C89, C99, SVr4, 4.3BSD. EJEMPLOS The example below first sorts an array of structures using qsort(3), then retrieves desired elements using bsearch(). #include #include #include #define ARRAY_SIZE(arr) (sizeof((arr)) / sizeof((arr)[0])) struct mi { int nr; const char *name; }; static struct mi months[] = { { 1, "jan" }, { 2, "feb" }, { 3, "mar" }, { 4, "apr" }, { 5, "may" }, { 6, "jun" }, { 7, "jul" }, { 8, "aug" }, { 9, "sep" }, {10, "oct" }, {11, "nov" }, {12, "dec" } }; static int compmi(const void *m1, const void *m2) { const struct mi *mi1 = m1; const struct mi *mi2 = m2; return strcmp(mi1->name, mi2->name); } int main(int argc, char *argv[]) { qsort(months, ARRAY_SIZE(months), sizeof(months[0]), compmi); for (size_t i = 1; i < argc; i++) { struct mi key; struct mi *res; key.name = argv[i]; res = bsearch(&key, months, ARRAY_SIZE(months), sizeof(months[0]), compmi); if (res == NULL) printf("'%s': unknown month\n", argv[i]); else printf("%s: month #%d\n", res->name, res->nr); } exit(EXIT_SUCCESS); } VEASE TAMBIEN hsearch(3), lsearch(3), qsort(3), tsearch(3) TRADUCCION La traduccion al espanol de esta pagina del manual fue creada por Sebastian Desimone y Juan Pablo Puerta Esta traduccion es documentacion libre; lea la GNU General Public License Version 3 o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. Si encuentra algun error en la traduccion de esta pagina del manual, envie un correo electronico a . Paginas de Manual de Linux 6.12 13 Diciembre 2024 bsearch(3)