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

Algorithmes et structures de données Discussion :

[Optimisation]Peut-on améliorer ce code ?


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Par défaut [Optimisation]Peut-on améliorer ce code ?
    Bonjour à tous !
    J'ai sous la main un petit code qui me paraît tellement simple qu'il doit être optimisable... Je pense ?
    Peut-on en tirer quelque chose ?
    A savoir: Les couples de valeurs possibles de uiWidth et uiHeight respectivement sont les suivantes :
    1. 17 - 4
    2. 5 - 4
    3. 4 - 1
    4. 16 - 1
    5. 15 - 1


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    for (UInt j = 0; j < uiHeight; j++)
        {
          for (UInt i = 0; i < uiWidth; i++)
          {
            if ( (paucLenTab[i] == uiLenRead) && (paucCodTab[i] == uiCode) )
            {
              uiVal1 = i;
              uiVal2 = j;
              return Err::m_nOK;
            }
          }
    	  paucLenTab += uiWidth;
    	  paucCodTab += uiWidth;
        }
    Edit: Je précise que ce code fait partie d'une fonction, qui est donc appelée cinq fois.

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par défaut
    Tout faire en une seule boucle pourrait pas mal accélérer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    UInt n = uiWidth*uiHeight;
    for (UInt i = 0; i < n; i++)
    {
      if ( (paucLenTab[i] == uiLenRead) && (paucCodTab[i] == uiCode) )
      {
        uiVal1 = i%uiWidth;
        uiVal2 = i/uiWidth;
        return Err::m_nOK;
      }
    }

  3. #3
    Membre éprouvé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Par défaut
    Malgré le modulo et la division...
    A essayer donc .

  4. #4
    Membre éprouvé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Par défaut
    Ca ne change pas grand chose, je dirais même, rien.
    A priori, le gros point noir est le test, donc il faudrait réécrire ce test pour aller plus vite.
    Ou mieux, éviter ce test, mais je ne vois pas comment.

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    faire (si ce n'est déjà fait) une boucle sur pauclenTab, pour en chercher le max. Calculer le nombre N pas en divisant ce max par Uiwidth.

    Faire la boucle des J en faisant à l'intérieur juste une boucle sur N..

  6. #6
    Membre éprouvé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Par défaut
    Le max, c'est fait .
    Je vais tester .

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 13/09/2011, 10h08
  2. Est ce que ce code peut être amélioré ?
    Par _s4z_ dans le forum Langage
    Réponses: 3
    Dernier message: 04/09/2010, 12h51
  3. [Toutes versions] Peut on améliorer ce code
    Par johannj dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/04/2009, 14h09
  4. [E-07]Peut-on améliorer ce code?
    Par rvtoulon dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 21/03/2009, 16h48
  5. Optimisations et Améliorations de code
    Par womannosky dans le forum Langage
    Réponses: 19
    Dernier message: 02/07/2008, 15h05

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