Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1612 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  recherche dichotomique sur chaîne de caractères

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

recherche dichotomique sur chaîne de caractères

n°1345378
carambole
Posté le 12-04-2006 à 18:31:51  profilanswer
 

Bonjour à tous,
 
Je ne pensais pas rencontrer ce genre de problème en Perl un jour, mais là, j' :ouch: .  
 
Je dispose d'un lexique de noms propres, une forme par ligne dans un fichier texte trié par les bons soins de la fonction sort du plus petit au plus grand. Dans ce fichier, "Allemagne de l'Est"  se situe avant "Allemagne".
 
Le problème, c'est que quand je fais une recherche dichotomique sur ce fichier, j'utilise la fonction lt pour savoir si le mot que je cherche est situé avant ou arpès le mot que je teste, et que cette fonction considère que la forme "Allemagne" est plus petite que la forme "Allemagne de l'Est". Résultat, à chaque fois que j'ai une forme simple et une forme composée à partir de celle-ci dans mon lexique, ma recherche n'aboutit pas.
 
voici le code de ma recherche:
 
my ($forme1) = shift @_;
 
 #initialisation des variables pour la recherche dichotomique
 my ($debut)=0;
 my ($fin)=$#lexique_NP;
 my ($tampon)=0;
 my ($milieu);
   
 #comparer les deux listes
 while($debut<=$fin) {
   
  $milieu= ($debut+$fin)/2;
  $milieu=~s/(.*),.*/$1/;
   
  chomp $lexique_NP[$milieu];
   
  #si la forme est identifiée, modifier la valeur de tampon  
  if($forme1=~/^$lexique_NP[$milieu]$/i){
   $tampon=1;
   $debut=$fin+1;
   }
   
  elsif($forme1 lt $lexique_NP[$milieu]){
    $fin=$milieu-1;
  }
   
  else{
   $debut=$milieu+1;
  }
   
 }
 return($tampon);
 
Je ne vois pas comment faire ma comparaison sans lt, quelqu'un pour m'éclairer?
 
Merci par avance

mood
Publicité
Posté le 12-04-2006 à 18:31:51  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  recherche dichotomique sur chaîne de caractères

 

Sujets relatifs
recherche de fichiers catiaFaire une recherche dans une base de données sql server
conversion caracteres en asciiCryptage XOR d'une chaine : pbm de caractères NULL
Recherche bon bouquin "papier"[SGBD] Base de données "embarquée" avec fonctions de recherche texte
[bash] modifier casse d'une chaine[RESOLU] question tres simple sur nombre de caracteres a l'ecriture
supprimer le n eme espace d'une chaine 
Plus de sujets relatifs à : recherche dichotomique sur chaîne de caractères


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR