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 :

Trier une matrice 2D


Sujet :

Algorithmes et structures de données

  1. #1
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Points : 403
    Points
    403
    Par défaut Trier une matrice 2D
    Salut,

    Pour trier une matrice à deux dimensions par exemple "int m[10][5] " puis ranger le résultat du tri dans l'ordre des colonnes ou des lignes je n'ai rien trouvé d'autre que de transférer la dite matrice dans un vecteur, "v[10*5]" .

    Puis après avoir trier le vecteur, le ranger dans la matrice selon l'ordre des lignes ou des colonnes.

    Y-a-t-il une solution plus simple qui pourrait se passer du vecteur, en opérant directement sur la matrice pour la trier selon les différents ordres ( lignes, colonnes ) ?

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    un simple changement de coordonnées ?

    il suffit de trier le tableau "virtuel" T[x] ( x variant de 0...NbColonnes*NbLignes-1) ou T[x] est defini comme:

    Tab[x] = M[i][j]

    avec i = E( x / NbColonnes ), j = x - NbColonnes*i


    Bref, il suffit de creer un "wrapper" autour de la matrice afin d'y acceder comme un tableau linéaire.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    tu peux trier sur place en considérant que ta matrice est en fait un vecteur
    en C :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int m[5][10] ;
    int* v = (int*)m ;
    /* puis tri de v */
    mais cela ne te permet que de trier dans un sens. pour l'autre sens, il faut transposer ta matrice deux fois : transpose, tri, transpose.
    "La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.

Discussions similaires

  1. Programme Trier une matrice (à compléter)
    Par mino77 dans le forum Débuter
    Réponses: 2
    Dernier message: 12/11/2009, 13h53
  2. trier une matrice
    Par aichaeside dans le forum MATLAB
    Réponses: 3
    Dernier message: 18/10/2009, 14h48
  3. [Tableaux] Trier une matrice
    Par Guillomme dans le forum Langage
    Réponses: 1
    Dernier message: 24/10/2007, 17h56
  4. Réponses: 7
    Dernier message: 13/09/2007, 15h22
  5. Trier une matrice 2D
    Par dj.motte dans le forum C
    Réponses: 1
    Dernier message: 26/06/2007, 07h59

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