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

Python Discussion :

Algorithme de tri pour tuple


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 37
    Par défaut Algorithme de tri pour tuple
    Bonjour à tous et à toutes,

    Je me permets de vous solliciter afin d'obtenir de l'aide de la réalisation d'une fonction python pour effectuer un tri fusion sur un tuple de la forme :
    [('texte',81),('texte1',7182),('texte7',817)]

    En effet je parviens à trier une liste classique de la forme [0,3,1,2,8,7,6] mais je n'arrive pas à trier un tuple par ordre croissant.

    Voici l'algorithme pour le tri d'une liste classique :

    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
     
    def fusion(gauche,droite):
        resultat = []
        index_gauche, index_droite = 0, 0
        while index_gauche < len(gauche) and index_droite < len(droite):        
            if gauche[index_gauche] <= droite[index_droite]:
                resultat.append(gauche[index_gauche])
                index_gauche += 1
            else:
                resultat.append(droite[index_droite])
                index_droite += 1
        if gauche:
            resultat.extend(gauche[index_gauche:])
        if droite:
            resultat.extend(droite[index_droite:])
        return resultat
     
    def trifusion(m):
        if len(m) <= 1:
            return m
        milieu = len(m) // 2
        gauche = m[:milieu]
        droite = m[milieu:]
        gauche = trifusion(gauche)
        droite = trifusion(droite)
        return list(fusion(gauche, droite))

    Merci d'avance pour votre aide précieuse,

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Bonjour,

    Je ne vois pas trop le soucis en fait, vous avez fait le plus dur je pense...

    au lieu d'avoir un item représentant un entier, vous avez un item composé de deux valeurs. Pour le tri, il suffit de dire que l'item qui nous intéresse est l'entier sur l'ensemble des deux valeurs.

    donc remplacer if gauche[index_gauche] <= droite[index_droite]: par if gauche[index_gauche][1] <= droite[index_droite][1]: devrait suffire pour fonctionner à mon avis.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 37
    Par défaut
    En effet, cela fonctionne ...

    Merci beaucoup pour votre lecture attentive

Discussions similaires

  1. Difficulté pour faire mon premier algorithme de tri
    Par TechnoForce dans le forum Ada
    Réponses: 6
    Dernier message: 18/09/2015, 14h10
  2. [XL-2003] Algorithme de Tri pour Tableau multidimension
    Par rabbitnator3000 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/06/2012, 10h56
  3. Aide pour algorithme de tri
    Par kheraud dans le forum Mathématiques
    Réponses: 5
    Dernier message: 26/02/2010, 18h17
  4. Algorithme de Tri pour Tableau multidimenssion
    Par nnadine2 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/11/2009, 17h58
  5. [C#] DataGrid: Conserver tri pour l'édition d'1 ligne
    Par gilder89 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 28/12/2004, 09h17

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