Section courante

A propos

Section administrative du site

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 :

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. #define NUM_ELEMENT_ARRAY 7
  6. #define STR_LENGTH 5
  7.  
  8. char strvalues[][STR_LENGTH] = {"ABC","DEF","GHI","JKL","MNO","PQR","STU"};
  9.  
  10. int main () {
  11.  if(NULL != (char*)bsearch("DEF", strvalues, NUM_ELEMENT_ARRAY, STR_LENGTH, (int(*)(const void*,const void*)) strcmp)) {
  12.   printf("DEF est dans le tableau.\n");
  13.  } else {
  14.   printf("DEF n'est pas trouvé dans le tableau.\n");
  15.  }
  16.  return 0;
  17. }

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