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

JavaScript Discussion :

Convertir un tableau en pourcentage le plus rapidement possible


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 173
    Par défaut Convertir un tableau en pourcentage le plus rapidement possible
    Bonjour,

    à cause d'une fonction SetTimeout contraignante je dois réaliser une conversion de tableau en pourcentage dans un temp record :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     function percent(array)
        {
         var i, max=0;
         var newarray = new Array();
     
         for (i=0; i<array.length; i++)
          max = max+array[i]; 
     
         for (i=0; i<array.length; i++)
          newarray[i] = Math.floor((array[i]/ max) * 100 );
     
         return newarray;
        }
        $grawdata=percent($grawdata);
    comment rendre le temps d'execution de ce code le plus court possible.

  2. #2
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Tu peux peut-être remplir max au fur et à mesure que tu remplis le tableau. Tu t’épargnes ainsi une boucle.
    De toute façon du moment que tu as une contrainte de temps il y aura un moment où tu la dépasseras.

    Après si tu calcules tes pourcentages au tout début du setTimeout tu n’as plus la contrainte.

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Citation Envoyé par badaze Voir le message
    Tu peux peut-être remplir max au fur et à mesure que tu remplis le tableau. Tu t’épargnes ainsi une boucle.
    Au début j'ai pensé pareil et ensuite je me suis rendu compte que max est la somme de tous les éléments du tableau et c'est cette somme qui est utilisée ensuite dans la deuxième boucle donc on ne peut pas la calculer au fur et à mesure...

    A moins d'avoir mal compris ?

  4. #4
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Non. Je parlais de sommer les valeurs dans max au moment de leur affectation dans le tableau.

    Au début max = 0
    j’insère 10 dans le tableau et somme 10 dans max (10)
    j’insère 12 dans le tableau et somme 12 dans max (22)
    etc...

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Sauf que le tableau en question est à priori déjà rempli, la fonction le reçoit en argument et alors la première boucle fait la somme de tous les éléments de ce tableau et range le résultat dans "max" qui est ensuite utilisée dans la deuxième boucle...

  6. #6
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Oui. Justement le but est de faire la somme au moment du remplissage du tableau.

    Si je ne m’abuse le setTimeout est exécuté une seule fois. S’il faisait son calcul juste dans le setTimeout juste avant le code qui est normalement exécuté cela devrait résoudre son problème. Non ?

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/05/2007, 23h02
  2. Tri le plus rapide possible
    Par PadawanDuDelphi dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 04/10/2006, 19h19
  3. Lire un fichier le plus rapidement possible
    Par Rodrigue dans le forum SL & STL
    Réponses: 9
    Dernier message: 02/05/2006, 10h43
  4. Réponses: 10
    Dernier message: 12/01/2006, 21h22
  5. Permuter des valeurs, le plus rapidement possible?
    Par danje dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 27/09/2005, 21h51

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