IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

recherche dichotomique (projet)


Sujet :

avec Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 4
    Par défaut recherche dichotomique (projet)
    Bonsoir,

    j'aimerais un peu d'aide concernant mon code. Je veux faire une recherche dans un dictionnaire comme le titre l'indique. Il est représenté par un tableau à 2 dimensions.

    La méthode dichotomique est celle conseillée. (par mon projet)

    Cependant mon code n'a pas l'air de fonctionner. Aucun résultat ne sort. Cela ressemble à une boucle infinie, mais je ne vois pas l'erreur.

    Merci de tout coeur pour votre aide et votre patience.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 static boolean CompareDico(char t[][],char t1[]) {
     
                  int a = 0;
                  int b = t.length-1;
                  int ind = (a+b)/2;
                  int val = dicho(t,t1,ind);
     
                  while(val!=0||b!=0||a!=t.length-1){
     
                      if(val==1) {
     
                          b=ind;
                      }
     
                          if(val==-1) {
     
                              a=ind;
                          }
     
                          val = dicho(t,t1,ind);
                  }
     
                      if(val==0){
     
                          return true;
     
                      }else{
     
                          return false;
                      }
              }
     
     
     
     
     
              public static int dicho (char t[][],char t1[],int ind) {
     
                  for(int i=0;i<t[ind].length;i++) {
     
                      if (t[ind][i]>t1[i]){
     
                          return 1;
                      }
     
                      if (t[ind][i]<t1[i]) {
     
                          return -1;
                      }  
                  }
     
                  return 0;
              }

  2. #2
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    Avant d'entrer dans les détails du code lui-même : est-ce que la représentation par tableaux de caractères est imposée? (on suppose que le "dictionnaire" est trié n'est ce pas?)
    Sais tu que la comparaison lexicographique ne se fait pas en comparant les caractères un à un? (exemple : "é", "e", "ê" sont équivalents dans un tel tri).
    par ailleurs quels sont les objectifs?: on ne comprend pas ce que le booléen résultat veut dire.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 4
    Par défaut
    Citation Envoyé par professeur shadoko Voir le message
    Avant d'entrer dans les détails du code lui-même : est-ce que la représentation par tableaux de caractères est imposée? (on suppose que le "dictionnaire" est trié n'est ce pas?)
    Sais tu que la comparaison lexicographique ne se fait pas en comparant les caractères un à un? (exemple : "é", "e", "ê" sont équivalents dans un tel tri).
    par ailleurs quels sont les objectifs?: on ne comprend pas ce que le booléen résultat veut dire.
    Ah merci pour votre intérêt !

    La représentation du dictionnaire par tableau de caractères est imposé oui effectivement. Et il est effectivement trié comme un "dictionnaire".

    Il n'y a pas d'accent mais que des majuscules c'est pour cela que je me le permets. Je suis cependant ouvert à une quelconque optimisation ou alternative.

    "...on ne comprend pas ce que le booléen résultat veut dire."

    Je renvoie vrai si le mot a été trouvé dans le dictionnaire sinon faux.

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 4
    Par défaut
    Citation Envoyé par professeur shadoko Voir le message
    Avant d'entrer dans les détails du code lui-même : est-ce que la représentation par tableaux de caractères est imposée? (on suppose que le "dictionnaire" est trié n'est ce pas?)
    Sais tu que la comparaison lexicographique ne se fait pas en comparant les caractères un à un? (exemple : "é", "e", "ê" sont équivalents dans un tel tri).
    par ailleurs quels sont les objectifs?: on ne comprend pas ce que le booléen résultat veut dire.
    Professeur ?

  5. #5
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    Citation Envoyé par Superman9857 Voir le message
    Professeur ?
    http://www.lesshadoks.com/index2.php?page=27

    la référence échappe aux jeunes générations qui n'ont pas connu ce monument (controversé!) de la télévision française!

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 4
    Par défaut
    Citation Envoyé par professeur shadoko Voir le message
    http://www.lesshadoks.com/index2.php?page=27

    la référence échappe aux jeunes générations qui n'ont pas connu ce monument (controversé!) de la télévision française!
    Je connais de visuel !

    Avez-vous une idée pour mon code ? Je n'y arrive vraiment pas je le tourne dans tous les sens mais rien n'y fait.

  7. #7
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    Citation Envoyé par Superman9857 Voir le message
    Avez-vous une idée pour mon code ? Je n'y arrive vraiment pas je le tourne dans tous les sens mais rien n'y fait.
    décompose le problème:
    1° quels sont les éléments que tu va comparer? des chaines ou des tableaux de caractères ? ensuite écrire bien proprement un Comparator (voir java.util)
    (pour mémoire: un java.text.Collator fourni gracieusement par java fait mieux le travail sur des chaînes)
    2° en fonction du résultat de l'invocation du comparateur ainsi écrit tu décides si c'est ok ou s'il faut que tu recherche dans la moitié supérieure ou inférieure de là où tu es dans ton dictionnaire. (tu peux recouper en deux ou recouper au hasard). un joli code récursif peut être écrit.

Discussions similaires

  1. probleme : recherche dichotomique
    Par M.a.n.u. dans le forum C
    Réponses: 3
    Dernier message: 17/06/2006, 23h30
  2. recherche dichotomique sur chaînes de carctères
    Par contexte dans le forum Langage
    Réponses: 4
    Dernier message: 13/04/2006, 00h31
  3. Réponses: 23
    Dernier message: 10/01/2006, 13h33
  4. Recherche dichotomique
    Par remixtech dans le forum C
    Réponses: 4
    Dernier message: 06/01/2006, 18h39
  5. Recherche dichotomique
    Par Gryzzly dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 31/12/2005, 11h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo