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 :

[rapidité d'execution] maximum


Sujet :

Algorithmes et structures de données

  1. #1
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut [rapidité d'execution] maximum
    salut ,
    j'aimerais trouver la manière la plus rapide de trouver le max de 3 valeur entières.

    Je dois executer ce code d'une manière extrement rapide et de très très nombreuse fois ( 10^8 ) , néanmoins je ne desire pas faire du code assembleur.

    je travail en C/C++.

    merci pour vos idées et sugestions.

  2. #2
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut
    bien le bonjour,

    a priori je dirais
    car je pense que tu es en mesure de determiner le max de 2 nombres.

  3. #3
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    je pense utiliser ca pour les max :
    pas pu faire plus rapide ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #define MAX(a,b) { if ((a)>(b)) SWAP((a),(b)); }
    #define SWAP(a,b) { BYTE local=(a);(a)=(b);(b)=local; }

  4. #4
    Membre éprouvé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 951
    Par défaut
    ne serait il pasplus rapide de declarer une fois pour tout ta variable
    ?
    personnelement, je n'en sait rien...

  5. #5
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut
    la définition de variables dans des macros est à proscrire. Il suffit de deux appels à la macro dans un même bloc pour provoquer une erreur de compilation.


    mais, pourquoi donc swapper alors qu'il suffit de retourner une valeur ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define MAX(a,b) ((a)>(b)?(a):(b))

  6. #6
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    j'ai copier trop de code, t'as raison retourner ma val suffit !

    Une proposition pour contourner les macros et avoir un code autant rapide?

  7. #7
    Membre émérite Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 890
    Par défaut
    Citation Envoyé par khayyam90
    bien le bonjour,

    a priori je dirais
    car je pense que tu es en mesure de determiner le max de 2 nombres.
    ça ne me semble pas une bonne idée: si la macro "max" est définie comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define max(a,b) ((a)>(b)?(a):(b))
    le pré-compilateur transformera le code en:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (((a)>(b)?(a):(b))>(c)?((a)>(b)?(a):(b)):(c))
    ce qui n'est pas le plus simple. Le mieux est souvent de programmer le plus simplement possible, le compilateur se chargeant de faire les optimisations qu'il sait les meilleures:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int max(int a, int b, int c)
      {
      int maxi = a;
      if (maxi < b) maxi = b;
      if (maxi < c) maxi = c;
      return maxi;
      }

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

Discussions similaires

  1. Inclure un temps d'execution maximum timeout
    Par Paulux1 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 05/11/2007, 14h27
  2. Rapidité d 'execution
    Par Mimisio dans le forum VBA Access
    Réponses: 1
    Dernier message: 09/08/2007, 15h42
  3. [Perf]Probleme de rapidité d'execution
    Par vempiria dans le forum Général Java
    Réponses: 10
    Dernier message: 21/10/2005, 11h38
  4. Rapidité d'execution :RechDom sur Table ou Requete???
    Par samlepiratepaddy dans le forum Access
    Réponses: 4
    Dernier message: 21/09/2005, 16h18
  5. Réponses: 8
    Dernier message: 19/07/2004, 14h34

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