Votre question

Dichotomie dans un dictionnaire en C++

Tags :
  • Programmation
Dernière réponse : dans Programmation
10 Janvier 2009 13:18:47

Bonjour à tous, voilà je débute en C++ et j'aimerais réaliser une fonction qui permet de faire une dichotomie dans un dictionnaire, ce qui me permettrais donc d'y placer un nouveau mots ou de voir si le mot existe.

Citation :

//voilà le dico

struct mots
{
char nom[10];
int numero;

};
struct mots dico[20]={{"absent",3},{"content",5},{"disparu",1},{"grand", 6},{"heureux", 2},{"immense", 4},{"minus", 7},{"petit",8} };



//voila la fonction qui marche qu'a moitié...

void cherche (void)
{
int taille;
int i,j, bas, haut ;
char mot[20] ={};
cout<<"Entrer la taille de votre mots : ";
cin>>taille;
cout<<"Entrer le mot a chercher : ";
for (i = 0 ; i < taille ; i++)
{
cin>>mot;
}

j = 0;
bas=1;
haut=8;
while (bas <= haut)
{
j=(bas+haut)/2;
if (mot[0]<=dico[j].nom[0])
haut = (j-1);
else
bas=(j+1);
}
cout<<j;
}



Merci d'avance pour votre aide :lol: 

Autres pages sur : dichotomie dictionnaire

a b L Programmation
10 Janvier 2009 15:07:42

Déjà utilise le tag "cpp" au lieu de "quote". :) 

Ensuite, si tu veux faire une recherche par dichotomie, il faut que tes éléments soient placés dans un ordre.
Et si tu dois faire un tri pour faire ça, mieux vaut faire une recherche séquentielle.

Si tu sais que pour toutes les insertions (initialisation comprise) dans le tableau, tu utilises ta fonction (enfin tu remplace ta structure par une classe et on parle de méthode, c'est plus propre puisque tu fais du C++), alors tu sais que ton tableau est forcément bien ordonné. Il ne reste plus qu'à faire la recherche dichotomique.

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS