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

ASP.NET Discussion :

[c#] Trier une liste de nombres liés.


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 71
    Points : 46
    Points
    46
    Par défaut [c#] Trier une liste de nombres liés.
    Bonjour,

    Je possède la liste suivante :

    • nicolas 7
      guillaume 15
      pierre 3
      françois 11
      jérome 3
      xavier 6


    J'aimerai pouvoir la trier en fonction du nombre :

    • guillaume 15
      françois 11
      nicolas 7
      xavier 6
      jérome 3
      pierre 3


    J'ai essayé avec une SortedList mais le probleme c'est que je ne peux pas mettre les chiffres en 'Keys' car certains sont identiques.

    Comment faire pour trier ces deux listes en prenant en compte le nombre du plus grand au plus petit ?

  2. #2
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    C'est peut etre possible de faire un key (note, nom)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 71
    Points : 46
    Points
    46
    Par défaut
    Tu veux dire de mettre nom, note dans les 'Keys' de ma sortedlist ?
    Je ne comprend pas bien ta réponse.

  4. #4
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Soit tu fais une Key a deux attributs (je ne sais pas si c'est possible) avec note puis nom (pas l'inverse !!)

    Sinon tu peux rechercher un algo de tri rapide.

    Ou bien concaténer note et nom et faire une clé avec ca !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 71
    Points : 46
    Points
    46
    Par défaut
    La Key a deux attributs : ca existe pas.

    Concatener note et nom : Ca fonctionne pas car il trie quand meme par ordre alphabétique et non numérique.

    Il me reste plus que le tri par un algo !!
    J'ai cherché rapidement sur Google mais j'ai pas trouvé grand chose, aurais tu un exemple de tri du plus grand au plus petit ?

  6. #6
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Il faut mettre la note avant le nom bien sur enfin bref...

    Pour les algorithmes :

    http://lwh.free.fr/pages/algo/tri/tri.htm (Fais des tests selon le nombre de valeur sur le site ;o)

    Je te conseille le tri de Batcher qui a l'air efficace, sinon y'a le tri rapide mais il n'y a pas l'algo ici et moi j'ai pas la force de te le ressortir lol.

    Pour mettre en ordre décroissant, tu dois changer quelques signes, rien de bien compliqué.

    N'hésite pas à aller sur la partire du forum algorithmes.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 71
    Points : 46
    Points
    46
    Par défaut
    Merci pour ton aide BiMouXeTTe, j'ai compris l'algo.

    Mais je suis sur qu'il existe un autre moyen en C# qui me prendrait moins de temps machine...

    Quelqu'un a une idée ?

  8. #8
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Ben 16 ms pour une liste aleatoire de 20000 chiffres (tri par tas, de Batcher et Shell :o) ca reste raisonnable

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 71
    Points : 46
    Points
    46
    Par défaut
    Oui mais en fait mon probleme est plus large car une fois que j'ai trié mes nombres, comment je les fais correspondre a mes noms ?

  10. #10
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Ben tu fais en sorte d'échanger la ligne et non la cellule, a toi d'adapter l'algorithme

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 71
    Points : 46
    Points
    46
    Par défaut
    Je n'arrive pas a utiliser ton algo.

    Je répete donc n'existe t il pas un moyen pour trier une sortedList selon ses valeurs ???

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 71
    Points : 46
    Points
    46
    Par défaut

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 31
    Points : 37
    Points
    37
    Par défaut
    Moi, je vois comme ça, sans faire de recherche.
    D'abord, tu crées une classe (Nom, Note).

    Ensuite pour trier, il ya les algo de tri. Mais peut-être que .net les implémente déjà, il faut rechercher.

    Peut-être une piste : IComparer (à chercher dans msdn)

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 71
    Points : 46
    Points
    46
    Par défaut
    Merci Austin, grâce à tes pistes j'ai réussi a faire ce que je voulais.

    j'ai créé une class Icomparer :

    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
     
    public class ObjetAComparer : IComparable
    {
    	public string key;
    	public int valeur;
     
    	#region IComparable Members
    	public ObjetAComparer(string _key, int _valeur)
    	{
    		key = _key;
    		valeur = _valeur;
    	}
     
            public int CompareTo(object obj)
            {
    		if(obj.GetType() == this.GetType())
    		{
    			return((ObjetAComparer)obj).valeur.CompareTo(valeur);
    		}
    		return 0;
    	}
    	public override string ToString()
    	{
    		return key.ToString();
    	}
            #endregion
    }
    Et je n'est plus qu'a l'appeler dans ma fonction de Sort d'une Arraylist...

    Voilà !

    Merci a tous.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/12/2009, 20h11
  2. Réponses: 8
    Dernier message: 11/04/2006, 21h41
  3. Trier une liste de dossiers et de fichiers
    Par steveleg dans le forum Langage
    Réponses: 2
    Dernier message: 07/04/2006, 16h54
  4. trier une list
    Par elekis dans le forum C++
    Réponses: 4
    Dernier message: 23/03/2006, 12h01
  5. [Debutant(e)]Trier une liste
    Par LeDébutantJava dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 19/08/2004, 12h44

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