BSEARCH |
Recherche binaire |
---|---|
SVID 3, POSIX, BSD 4.3, ISO 9899 | stdlib.h |
Syntaxe
void *bsearch(const void *clef, const void *base, size_t nmemb, size_t size, int (*compar)(const void *elem1, const void *elem2)); |
Paramètres
Nom | Description |
---|---|
clef | Ce paramètre permet d'indiquer l'adresse de la valeur à rechercher |
base | Ce paramètre permet d'indiquer l'adresse du tableau |
nmemb | Ce paramètre permet d'indiquer le nombre d'item que contient le tableau |
size | Ce paramètre permet d'indiquer la taille d'un item du tableau |
compar | Ce paramètre permet d'indiquer la fonction a utiliser pour la comparaison et doit retourner une valeur pour indiquer si les items sont inférieur, égale ou supérieur |
elem1 | Ce paramètre permet d'indiquer le premier item fonction a utiliser pour la comparaison |
elem2 | Ce paramètre permet d'indiquer le deuxième item fonction a utiliser pour la comparaison |
Description
Cette fonction effectue une recherche binaire (dichotomique) dans un tableau.
Exemple
Voici quelques exemples typiques de l'utilisation de cette fonction :
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
-
- #define NUM_ELEMENT_ARRAY 7
- #define STR_LENGTH 5
-
- char strvalues[][STR_LENGTH] = {"ABC","DEF","GHI","JKL","MNO","PQR","STU"};
-
- int main () {
- if(NULL != (char*)bsearch("DEF", strvalues, NUM_ELEMENT_ARRAY, STR_LENGTH, (int(*)(const void*,const void*)) strcmp)) {
- printf("DEF est dans le tableau.\n");
- } else {
- printf("DEF n'est pas trouvé dans le tableau.\n");
- }
- return 0;
- }
on obtiendra le résultat suivant :
DEF est dans le tableau.Voir également
Langage de programmation - C - Référence procédures et fonctions - bsearch
Langage de programmation - Perl - Référence des modules - POSIX::BSEARCH
Dernière mise à jour : Dimanche, le 21 février 2016