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

Langage Perl Discussion :

la fonction grep


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 24
    Points : 24
    Points
    24
    Par défaut la fonction grep
    Bonjour,

    Je cherche un moyen de trouver un chiffre dabs un stack:
    voici un example:

    push($num,@a);
    .
    .
    .
    .
    .
    if (grep($num,@a){...};

    Je vois dans mon stack la bonne valeur mais le grep ne recherche pas le chiffre mais le char.

    Est ce que qelqu'un pourrait m'aider?

    Merci.

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if( grep {$_ == $num} @stack ) {
     
    }
    Mais si @stack est vraiment gros, tu devrais considérer d'autres possibilités, comme par exemple entretenir un hash en parallèle de façon à avoir une vérification en O(1).

    --
    Jedaï

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 24
    Points : 24
    Points
    24
    Par défaut
    Merci bcp,

    Mais pour ce qui est du hash aussi il faudrait faire une loop pour trouver ma valeur donc ce sera aussi long ?

  4. #4
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par Pauli
    Mais pour ce qui est du hash aussi il faudrait faire une loop pour trouver ma valeur donc ce sera aussi long ?
    Non bien sûr... L'avantage du hash c'est que si tu as une clé dans le hash, tu peux tester son existence avec une complexité constante en moyenne, tu passes de O(n) à O(1) !
    Par exemple :
    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
    my @a;
    my %a;
     
    foreach (1..4000) {
        my $num = rand 2_000_000;
        push @a, $num;
        $a{$num} = 1;
    }
     
    #...
     
    my $num = something;
     
    if ( exists $a{$num} ){
        #...
    }
    --
    Jedaï

Discussions similaires

  1. Petit problème avec la fonction grep
    Par michaud_rene dans le forum Linux
    Réponses: 1
    Dernier message: 23/06/2009, 13h17
  2. Fonction grep - comportement étrange
    Par pleiade dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 19/11/2008, 19h07
  3. fonction grep pour tableaux
    Par Jasmine80 dans le forum Langage
    Réponses: 4
    Dernier message: 20/12/2007, 13h57
  4. fonction grep -i
    Par ced53 dans le forum Langage
    Réponses: 4
    Dernier message: 18/06/2007, 13h35
  5. code fonction grep
    Par Didier77 dans le forum C
    Réponses: 15
    Dernier message: 10/05/2007, 17h45

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