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 PHP Discussion :

valeur minimal


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 110
    Points : 55
    Points
    55
    Par défaut valeur minimal
    Bonsoir, voila j'essaie de trouver le code me permettant de trouver la valeur minimal d'un tableau sans passer par une fonction min()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
     
     
    J'ai pensais que: Si la clef est supérieur 
    aux autres clef du tableau ayant pour indice $i cad si 
    $e est supérieur à $e[0] ensuite que $e est 
    supérieur à $i[1] ... */
    
             if ($e > $e[$i++]
             echo $e est le plus grande
    }
    ?>
    Je pense que mon raisonement est un peu prés bon mais la mise en code est

    Merci

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Points : 1 101
    Points
    1 101
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $max = $ar_tab[0];
    for($i=1 ; $i < count($ar_tab); $i++)
    {
          if($ar_tab[$i] > $max)
                 $max = $ar_tab[$i];
    }

  3. #3
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    ça sent l'énoncé de cours de programmation à plein nez

    La solution noobz:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $max = false;
    foreach ($tab as $key => $value)
    {
        $max = ($max === false || $value >= $max) ? $value : $max;
    }
    echo "$max est la plus grande valeur du tableau";
    Un solution plus propre (ça respecte ton énoncé: ne pas utiliser max)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sort($tab, SORT_NUMERIC);
    $tab = array_reverse($tab);
    echo array_shift($tab);
    gnark gnark gnark.
    Vu que la fonction sort est un qsort réccursif, sa complexité algorithmique est moins grande qu'une boucle itérative: donc tu es gagnant.

    Note: au passage, il est TOUJOURS plus rapide d'utiliser des fonctions natives de PHP que des boucles. Vous pouvez faire les tests que vous voulez, c'est comme ça.

    Edit woop j'avais pas vu que c'est la valeur min qu'on cherche, dans ce cas, pas besoin de 'array_reverse' qui sert à inverser l'ordre du tableau.

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    J'ai écrit une stupidité. Merci de ne pas tenir compte de mon précédent message.
    La recherche d'une valeur de manière itérative est effectivement la moins complexe algorithmiquement, je sais pas ce que j'avais bu pour écrire ça

    Remarque, ça pourrait être intéressant de voir si l'exemple 2, quoique plus complexe est plus rapide du fait de l'optim en PHP.

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

Discussions similaires

  1. Initialiser a une valeur minimal un champ atoincrement
    Par mirrouother dans le forum C++
    Réponses: 0
    Dernier message: 14/02/2014, 13h05
  2. [Débutant] Recherche de l'ecart minimal ou de l'egalite entre 2 valeurs affichées
    Par Attila54 dans le forum VB.NET
    Réponses: 16
    Dernier message: 23/01/2012, 15h06
  3. récupérer la valeur de sortie d'un thread
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2002, 11h28
  4. [XSLT]position d'un element de valeur specifique
    Par squat dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 25/07/2002, 16h42
  5. Réponses: 2
    Dernier message: 22/07/2002, 18h02

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