Fouille dichotomique String
Voila, je veux faire une recherche dans un tableau d'objet avec ce type de fouille.
Par contre, j'ai des problèmes quand à l'implémentation de celui-ci.
Il faudrait q'il recherche dans le tableau d'objet "tabMotsDict".
Merci
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| public class MotDictionnaire {
private String mot;
private char type;
private char genre;
private char nombre;
public MotDictionnaire(String mot, char type, char genre, char nombre)
{
this.mot = mot;
this.type = type;
this.genre = genre;
this.nombre = nombre;
}
public String getMot() {
return mot;
}
public char getType() {
return type;
}
public char getGenre() {
return genre;
}
public char getNombre() {
return nombre;
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| public class Dictionnaire
{
public MotDictionnaire[] tabMotsDict;
public Dictionnaire(){};
public Dictionnaire(MotDictionnaire[] tabMotsDict)
{
this.tabMotsDict = tabMotsDict;
}
public MotDictionnaire[] getTabMotsDict() {
return tabMotsDict;
}
public void setTabMotsDict(MotDictionnaire[] tabMotsDict) {
this.tabMotsDict = tabMotsDict;
}
/*******************************
* Fonction qui vérifie si un mot existe dans le dictionnaire
*
*Recoit un mot
*
*Retourne un boolean (true / false)
*
*/
public boolean motExiste(String mot)
{
int debut;
int fin;
int valeur = 0;
int milieu = 0;
int tab[] = new int[100];
boolean trouve;
debut = 0;
fin = 100;
trouve = false;
while(valeur < tab[0] || valeur >= tab[100])
milieu = debut + ((fin - debut) / 2);
if(tab[milieu] == valeur)
trouve = true;
else
if(valeur > tab[milieu])
debut = milieu + 1;
else
fin = milieu - 1;
while(trouve = false && debut < fin);
return trouve; |