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

C++ Discussion :

temps d'exécution d'un code c++


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 4
    Par défaut temps d'exécution d'un code c++
    bonjours ,

    j'ai implémenter un code qui fonctionne pratiquement comme un solveur de scrabble , mon problème est que lorsqu'il s'agit de 10 lettres l'exécution prendrais 9 (selon mes estimation)
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
     
     
    #include<iostream>
    #include<string>
    #include<algorithm>
    #include<list>
    #include<vector>
    #include<fstream>
     
    using namespace std;
     
     
    int dicho_rech(vector<string> vect, string mot)
    {
       int centre;
       int bas=0;
       int haut=vect.size()-1 ;
       while(bas <= haut)
       {
          centre = (bas+haut)/2; // élément central de la partie traité
          if(mot.compare(vect[centre])==0) // valeur trouvée
             return centre;
          else if(mot.compare(vect[centre])<0)
             haut = centre-1; // recherche ds la partie inférieure du tableau
          else if(mot.compare(vect[centre])>0)
             bas = centre+1; // recherche ds la partie supérieure du tableau
       }
       return -1; // valeur recherchée non trouvée
    }
     
     
    string ltos_conversion(list<char> l)
    {
         <a href="http://www.freelang.com/download/misc/liste_francais.zip" target="_blank">http://www.freelang.com/download/mis...e_francais.zip</a>
        list<char>::iterator it=l.begin() ;
        string s ="";
        s+=*it ;
        for (int i = 1 ; i<l.size();i++) { advance(it,1) ; s=s+*it; }
        return s ;
     
    }
     
     
     
    void print( list<char> l){
        for(list<char>::iterator it=l.begin(); it!=l.end() ; ++it)
                cout << *it;
        cout<<endl;
    }
     
    void subset(char arr[], int size, int left, int index, list<char> &l , vector<string>& words , vector<string> dicovec , int& j ,vector<string>&solval){
     
        if(left==0)
        {
            string s = ltos_conversion(l);
            std::sort(s.begin(),s.end());
            do
            {  
                solval.push_back(s);
                j++ ;
                if(j%1000==0) cout<<"boucle numero "<<j<<endl;
                int ind = dicho_rech(dicovec,s);
                if (ind!=-1) {  words.push_back(s) ; cout<<"une solution"<<endl;}
            }
             while (next_permutation(s.begin(),s.end())) ;
            return ;
        }
        for(int i=index; i<size;i++){
            l.push_back(arr[i]);
            subset(arr,size,left-1,i+1,l,words,dicovec,j,solval);
            l.pop_back();
        }
     
    }    
     
    int main(int argc,char** argv)
    {
            ifstream dico("liste_francais.txt",ios::in);
            vector<string> words ;
            vector<string> dicovec ;
            vector<string> solvalvec;
        char array[10]={'a','g','u','e','r','i','c','f','p','r'};
        list<char> lt;
        int i =8;
        int k=0 ;
        string line ;
        while(getline(dico,line))   {  dicovec.push_back(line) ;}
        sort(dicovec.begin(),dicovec.end());
        while ((words.size()==0)&&(i>=1))
        {
             subset(array,8,i,0,lt,words,dicovec,k,solvalvec);
             i-- ;
     
        }
        for(i=0;i<words.size();i++) cout<<words[i]<<endl;
        dico.close();
        return 0;
    }
    le lien de dictionnaires utilisé :
    http://www.freelang.com/download/mis...e_francais.zip

  2. #2
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut
    Cool!

    Il prendrait 9 choux fleurs? Le voleur, faut empêcher ça!!!

    EDIT:

    Sinon ... Quelle est la question?
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 4
    Par défaut
    hhhhh vous avez raison .. j'ai oublier de mettre 9 heurs d'exécution
    bon en effet je viens de résoudre le problème : il s'agit du passage par référence
    Merci

  4. #4
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut
    C'est un exercice?
    Ou un TP?

    Es-tu convaincu qu'un vector soit la structure la plus appropriée sachant que tu vas faire des recherches dedans?
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 4
    Par défaut
    bon je ne suis po douée en matière du choix de structure mais le vector avais l'accès le plus rapide je crois

  6. #6
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut
    Oui, mais il n'est pqs du tout fait pour la recherche d'éléments, surtout des chaines.
    Regarde du côté de std::set ou std::unordered_set, ces deux classes t'aideront certainement plus...
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Optimisation du temps d'exécution d'un code vba
    Par chepa dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/06/2012, 09h39
  2. Optimisation de temps d'exécution d'un Code VBA
    Par Adilleroy dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 26/07/2010, 13h16
  3. Calcul du temps d'exécution d'un code
    Par phoque.r dans le forum MATLAB
    Réponses: 2
    Dernier message: 13/03/2008, 10h40
  4. Comment trouver le temps d'exécution d'un code?
    Par Renma2 dans le forum VB.NET
    Réponses: 14
    Dernier message: 03/10/2007, 20h20
  5. [Fait]Temps d'exécution d'un code
    Par JeremieT dans le forum Contribuez
    Réponses: 2
    Dernier message: 30/08/2006, 06h20

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