salut,
 
B-tree ou en fr arbre binaire. Les b-tree se basent sur l'algo de recherche par dichotomie.Lle but est d'accélérer la recherche d'une valeur dans un tableau de n valeurs.
 
Pour un tableau de 1000 valeurs, une recherche séquentielle nécéssite environ 500 tests pour trouver la valeur. Avec la dichotomie tu as au max 10 tests (environ 6/8 en moyenne).
 
comment ça marche : admettons que tu recherches une valeur dans un tableau de 1000 valeurs.
 
Tu testes la valeur N/2 du tableau soit 500. Si ta valeur est supérieure a celle du tableau alors la prochaine valeur sera 750.
 
Voici une fonction en langage C.  
 
 
long find_chaine_dans_TAB(char *mot,int taille_TAB)
/*
 utilisation de bsearch sur tableau  
*/
{
int   a,
 test,
 pos_enr,
 debut_enr,
 fin_enr;
 
   fin_enr = taille_TAB-1;
   debut_enr = 0;
 
   a = strlen(mot)+1;
   while(debut_enr <= fin_enr)
   {
      pos_enr  = (fin_enr + debut_enr) / 2;
      test = memcmp(mot,TAB[pos_enr],a);
      if (test > 0)   /* vers la droite */
      {
          debut_enr = pos_enr + 1;
      }
      else
      {
 if (test < 0)   /* vers la gauche */
 {
 	fin_enr = pos_enr - 1;
 }
 else
 {
   return(pos_enr);
 }
     }
  }
return(-1);
} 
 [edtdd]--Message édité par Barbarella--[/edtdd]