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 :

algo de tri gérant les exaequo


Sujet :

Algorithmes et structures de données

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut algo de tri gérant les exaequo
    bonjour,

    j'ai le tableau suivant que je remplis en dynamique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Candidat  Note
    1       |  19
    2       |  17
    3       |  17
    4       |  13
    5       |  12
    6       |  10.5
    7       |  10
    8       |  10
    9       |  10

    et je voudrais arriver a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Candidat  Note Classement
    1      |  19   |  1
    2      |  17   |  2 EX
    3      |  17   |  2 EX
    4      |  13   |  3
    5      |  12   |  4
    6      |  10.5 |  5 
    7      |  10   |  6 EX
    8      |  10   |  6 EX
    9      |  10   |  6 Ex

    Connaissez vous un algorithme pour me calculer le classement et mettre et les EX aux bon endroits?
    Merci pour vos reponses
    Thomas

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Bonjour,

    Pour caculer le classement, il te suffit de trier le tableau par note.

    Ensuite, il te suffit de parcourir la colonne note du tableau, et de regarder la note courrante et la note suivante. Si elles sont égales, alors tu écris EX dans la colonne classement, en plus du classement proprement dit.

    Essais d'écrire ce pseudo-code, et postes-le ici si tu as des problèmes.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Membre actif Avatar de Biosox
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 298
    Points : 203
    Points
    203
    Par défaut
    Bonjour,

    Pour le tri, suivant le langage que tu utilises, des algorithmes de tri sont parfois déja implémenté, il te suffit de redéfinir les opérateurs <, >, =, etc.
    (par exemple pour dire que {candidat1,note1} > {candidat2,note2} si note1>note2)

    Mais si tu dois écrires l'algorithme de tri, pour une liste pas trop grande, je te propose le "tri-bulle", c'est surement l'algorithme de tri le plus simple qui existe (et donc le moins performant, donc seulemet si la liste n'est pas trop grande, mais si c'est une liste de candidat, elle ne regroupe surement qu'au maximum qq centaines de champs, et c'est bien assez petit)
    http://www.dailly.info/algorithmes-de-tri/bulle.php

    une fois le tri effectué, suit les conseils de gangsoleil

  4. #4
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    en fait je programme en delphi, j'ai mis mon tableau déjà trié dans un Client Data Set.
    la difficulté que j'ai, c'est d'ecrire le classement comme je l'ai illustré plus haut.

  5. #5
    Membre actif Avatar de Biosox
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 298
    Points : 203
    Points
    203
    Par défaut
    Je connais pas le delphi, mais imagine un truc du genre:
    Tu as un tableau avec 3 colonnes: la note, le classement et un texte (le texte correspond soit à "EX" soit est vide)

    donc dans ton tableau, tu as pour l'instant
    Note Classement texte
    19 (vide) (vide)
    17 (vide) (vide)
    17 (vide) (vide)
    13 (vide) (vide)
    12 (vide) (vide)
    10.5 (vide) (vide)
    10 (vide) (vide)
    10 (vide) (vide)
    10 (vide) (vide)
    et toi tu veux:
    Note Classement texte
    19 1 (vide)
    17 2 EX
    17 2 EX
    13 3 (vide)
    12 4 (vide)
    10.5 5 (vide)
    10 6 EX
    10 6 EX
    10 6 EX
    tu dois pouvoir faire un truc du genre:
    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
     
    //Initialisation:
    NOTE = 1;   //premiere case
    CLASS = 2; //deuxième case
    TXT = 3;  //troisième case
     
     
    //le tableau de candidat est mesCandidats[N][3]
    //N=nombre de candidat, 3=nombre de case par candidat
    //le premier candidat du tableau a forcément un classement de 1:
    Classement=1;
    mesCandidats[1][CLASS]=Classement;
     
    //boucle sur les candidats qui suivent:
    pour i de 2 a N:
    {
     si candidat[i][NOTE]=candidat[i-1][NOTE], alors:
     {
      candidat[i][CLASS]=candidat[i-1][CLASS];
      candidat[i][TXT]="EX";
      candidat[i-1][TXT]="EX";
     }
      sinon:
     {
      Classement=Classement+1;
      candidat[i][CLASS]=Classement;
     }
    }

Discussions similaires

  1. Comparaison entre les algos des tri
    Par Black.Rose dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 11/12/2008, 20h55
  2. tri avec les champs vides en dernier
    Par r-zo dans le forum Requêtes
    Réponses: 11
    Dernier message: 03/09/2003, 13h40
  3. Algo de tri, extension
    Par Mouse dans le forum Langage SQL
    Réponses: 5
    Dernier message: 27/02/2003, 00h14

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