Section courante

A propos

Section administrative du site

BSEARCH

Recherche binaire
Visual C++ stdlib.h

Syntaxe

void *bsearch(const void *key,const void *base, size_t num, size_t width, int(*compare)(const void *elem1,const void void *elem2));

Paramètres

Nom Description
key Ce paramètre permet d'indiquer l'adresse de la valeur à rechercher
base Ce paramètre permet d'indiquer l'adresse du tableau
num Ce paramètre permet d'indiquer le nombre d'item que contient le tableau
width Ce paramètre permet d'indiquer la taille d'un item du tableau
compare 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 "stdafx.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(int argc, char* argv[]) {
  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 - Visual C++ - Référence procédures et fonctions - qsort

Dernière mise à jour : Samedi, le 7 avril 2018