Tri_matrice

Bonjour,comment trier une matrice 'sans utiliser un tableau comme intermediaire' ?
Configuration: Windows Vista
Internet Explorer 7.0

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Qu'appelles-tu "trier une matrice" ?
    Que cherches tu as faire, peux-tu nous donner un exemple ?

    Bonne chance
    1. pour trier une matrice c'est facile lorsque on remplir le contenu du matrice dans un tableau, on affectue alors un tri sur ce tableau quelque soit le principe de tri selection,shell .. et on remplir le contenu triee du tableau dans la matrice ... mon pb est ce que on peut utiliser autre solution? comme modifier un certains tri pour qui'il soit valable pout trier matrice et merci pour votre message
  2. Modérateur
    Désolée mais je n'ai rien compris. Donne-moi un exemple de matrice en "version non triée" et en "version triée".

    Bonne chance
    1. 3 13 2
      4 1 12
      11 10 9

      1 2 3
      4 9 10
      11 12 13

      merci de nouveau a votre message
    2. desole car je n'a pas bien presente le pb
      le pb::c'est trier un tableau de 2 dimension sans utiliser un tableau d'un seul dimension comme moyen/intermediare de trouver la solution
      j'ai trouvé la solution que je le recherche :pas besoin d'aide merci de me suivre le pb deja
  3. Modérateur
    Bon j'ai cru comprendre que tu avais résolu ton problème. Effectivement ça ne change rien ce n'est qu'un changement sur la manière d'organiser les données. Supposons que tu aies une matrice de N lignes et M colonnes et que tu indexes tes cases comme suit :
    0   1  ... 1.M - 1
    M  M+1 ... 2.M - 1
    ...
    (N-1)M ... N.M - 1

    Alors la case i correspond à la ligne i/M (partie entière) et à la colonne i%M, où % désigne l'opérateur modulo. C'est par exemple cette transformation qui est montrée dans cet exemple :
    #include <stdio.h>
    
    int main(){
        int i;
        int L = 3;
        int C = 10;
        for(i=0;i<L*C;++i){
            printf("(%d,%d) ",i/C,i%C);
            if(i%C == C - 1) printf("\n");
        }
        return 0;
    }

    qui donne à l'exécution :
    (0,0) (0,1) (0,2) (0,3) (0,4) (0,5) (0,6) (0,7) (0,8) (0,9)
    (1,0) (1,1) (1,2) (1,3) (1,4) (1,5) (1,6) (1,7) (1,8) (1,9)
    (2,0) (2,1) (2,2) (2,3) (2,4) (2,5) (2,6) (2,7) (2,8) (2,9)

    Partant de là il est très simple d'adapter un algorithme capable de faire un tri sur un tableau unidimensionnel dont l'index varie dans {0 ...., N.M - 1} vers un algo de tri manipulant un tableau N* M.

    Bonne chance