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

 C Discussion :

algorithme de tri


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Décembre 2012
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Décembre 2012
    Messages : 12
    Par défaut algorithme de tri
    bonsoir
    j'aimerai savoir comment trier les indices du tableau avec les elements du tableau (tri avec utulisation de variable auxiliaire).
    cad les indices doivent etre triées aussi.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 477
    Par défaut
    Bonsoir,

    Citation Envoyé par fathese Voir le message
    bonsoir
    j'aimerai savoir comment trier les indices du tableau avec les elements du tableau (tri avec utulisation de variable auxiliaire).
    cad les indices doivent etre triées aussi.
    En C, un indice de tableau est forcément un nombre entier qui donne le rang de l'élément par rapport au début du tableau. En ce sens, ils sont forcément triés puisqu'ils repèrent toujours une même position. Il n'y a pas de tableau associatif « natif ».

    Ça a l'air d'être un devoir scolaire et il semble que tu n'aies pas compris quel est l'objet de l'exercice. Montre-nous ici ce que tu as déjà écrit (avec les balises [code] et [/code]) et on tâchera de t'aider.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 9
    Par défaut
    A mon avis, il souhaite trier les éléments de son tableau mais en gardant le même indice devant. Mais il faut dans ce cas comprendre "id" quand il dit "indice".
    Mais ce n'est que supposition. Comme le suggère Obsidian, il serait bien que tu nous montre ton énoncé et ce que tu as déjà codé.

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par OSNLC Voir le message
    A mon avis, il souhaite trier les éléments de son tableau mais en gardant le même indice devant.
    Bonsoir
    Faudra m'expliquer le sens de cette phrase...

    Citation Envoyé par fathese Voir le message
    cad les indices doivent etre triées aussi.
    Ben les indices d'un tableau c'est [0]; [1]; [2] donc ils sont toujours triés tes indices...!!!
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 477
    Par défaut
    Je subodore une référence implicite aux tableaux associatifs qui n'existent pas nativement en C, même s'il existe des bibliothèques pour faire quelque chose d'équivalent. Mais ceci va nous emmener vers les collections de paires clés-valeurs et l'indexation de colonnes comme dans les bases de données. Donc je préfère avancer prudemment. :-)

  6. #6
    Membre Expert Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Par défaut
    Bonjour,

    Ce qui est sur, c'est que les explications du PO sont tout ... sauf limpides.

    Je comprends la même chose que OSNLC (d'ailleurs quelle mouche a piqué celui ou celle qui lui a collé un -1 ??? ) : trier le tableau (selon les valeurs) mais tout en conservant l'index d'origine des valeurs

    Sans utiliser de notation C à dessein :

    en entrée, tableau [ 17, 4, 34, 1 ]

    au final tableau [ ( val 1, index 3), (val 4, index 1), (val 17, index 0), (val 34, index 2) ]

    Cela suppose de :
    • définir/choisir un type pour les éléments du tableau final (dim 2, tableau de structures, ...) ou gérer 2 tableaux (celui des valeurs, celui des indexes initiaux)
    • construire un autre tableau (donc pas un simple tri (qsort) du tableau en entrée), voire 2


    Parce qu'on est sur le forum C (et donc je ne donne pas la réponse) et que, dans les intervenants, certains connaissent Python, je pense à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    >>> tab = [ 17, 4, 34, 1 ]
    >>> result = sorted(enumerate(tab), key = lambda (i,v): v)
    >>> result
    [(3, 1), (1, 4), (0, 17), (2, 34)]

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par plxpy Voir le message
    [*]...ou gérer 2 tableaux (celui des valeurs, celui des indexes initiaux)
    Euh non. Le C permet d'associer des éléments disparates par le biais de structures, ce serait régresser que de gérer 2 tableaux distincts en parallèle tout en sachant qu'ils vont ensemble. N'oublie pas que la relecture et l'évolutivité sont aussi des concepts importants d'un code...

    Citation Envoyé par plxpy Voir le message
    Parce qu'on est sur le forum C (et donc je ne donne pas la réponse) et que, dans les intervenants, certains connaissent Python, je pense à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    >>> tab = [ 17, 4, 34, 1 ]
    >>> result = sorted(enumerate(tab), key = lambda (i,v): v)
    >>> result
    [(3, 1), (1, 4), (0, 17), (2, 34)]
    Tu deviens super doué en Python !!!
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  8. #8
    Membre Expert Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Par défaut
    Citation Envoyé par Sve@r
    Euh non. Le C permet d'associer des éléments disparates par le biais de structures, ce serait régresser que de gérer 2 tableaux distincts en parallèle tout en sachant qu'ils vont ensemble. N'oublie pas que la relecture et l'évolutivité sont aussi des concepts importants d'un code...
    Tu as tout à fait raison. Je voulais élargir les possibilités pour faire ce tri et je me suis laissé emporter.

    Et, de toute façon, le plus simple est bien d'avoir les index initiaux qui collent aux basques des valeurs lors du tri (c'est bien ce que je fais en python d'ailleurs !). Une fonction de comparaison bien sentie, qui ne s'occupe que de la valeur, en paramètre de qsort, fera très bien l'affaire.

    Reste toujours à savoir ce que veut effectivement faire le PO, peu bavard (un grand classique sur le forum...)

    [EDIT] d'un autre côté, c'est très souvent des messages postés le jour J pour un truc à rendre le jour J+1. On parle surement tous dans le vide mais ça servira aux prochains !

Discussions similaires

  1. Complexité de l'algorithme de Tri Fusion
    Par judge06 dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 26/03/2007, 22h04
  2. A propos des algorithmes de tri..
    Par Kerwando dans le forum C++
    Réponses: 4
    Dernier message: 19/08/2006, 11h43
  3. Probleme avec mon algorithme de tri
    Par kaygee dans le forum Langage
    Réponses: 6
    Dernier message: 09/01/2006, 21h23
  4. Réponses: 16
    Dernier message: 10/11/2005, 22h51
  5. algorithme de tri tableau :afficher que les éléments unique
    Par sofiane61 dans le forum Algorithmes et structures de données
    Réponses: 19
    Dernier message: 31/03/2005, 19h50

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