[algorithme] chuis bloqué pour la table des successeurs (KMP)

chuis bloqué pour la table des successeurs (KMP) [algorithme] - Programmation

Marsh Posté le 12-03-2002 à 17:25:31    

salut tout le monde!
chui un tit peu bloqué au niveau de l'algo pour la création de la table des successeurs de l'algo de Knuth maurice et pratt. Je sais quel en est le principe, mais je sais pas par quel bout l'attaquer, donc, si vous pouviez me donner un tit coup de main, ce serait pas de refus!
merci d'avance

Reply

Marsh Posté le 12-03-2002 à 17:25:31   

Reply

Marsh Posté le 12-03-2002 à 21:31:38    

désolé de vous avoir dérangé, j'ai trouvé tout seul!!
voilà ce que j'ai fait (en perl) pour ceux que ça pourrait intéresser:
$i = 1;
$j = 0;
$posuiv [0] = -1;
$posuiv [$i] = $j;
 
while ($i < length ($mot))
{
    if ($tab[$j] eq $tab[$i])
    {
 $i++;
 $j++;
 $posuiv[$i]=$j;
    }
 
    else
    {
 if ($j == 0)
 {
     $i++;
     $posuiv[$i]=$j;
 }
 
 else
 {
     $j = $posuiv[$j];
 }
    }
}
ou ça en version améliorée :
$i++;
}
 
$i = 1;
$j = 0;
$posuiv [0] = -1;
$posuiv [$i] = $j;
 
while ($i < length ($mot))
{
    if ($tab[$j] eq $tab[$i])
    {
 $i++;
 $j++;
 
 if ($i <= $#tab && $tab[$i] eq $tab[$j])
 {
     $posuiv[$i] = $posuiv[$j];
 }
 
 else
 {
     $posuiv[$i] = $j;
 }
    }
 
    else
    {
 if ($j == 0)
 {
     $i++;
     $posuiv[$i]=$j;
 }
 
 else
 {
     $j = $posuiv[$j];
 }
   }
}
 
ciao!

Reply

Marsh Posté le 12-03-2002 à 21:46:49    

je connais pas l'algo de Knuth maurice et pratt.
c koi le principe?
 
je connais et programme en Perl mais la je vois pas ce que ca fait !!


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 12-03-2002 à 22:55:32    

http://www1.ics.uci.edu/~eppstein/161/960227.html


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 13-03-2002 à 18:31:38    

:jap: merci :jap:


---------------
Tout à commencé par un rêve...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed