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]