Matrice en tableau

KENZA15A -  
irmeche Messages postés 76 Statut Membre -
Bonjour,

je veut trier une matrice (tableau a 2 dimenssions) du max au min pour ce la je doit la transformer en un tableau simple et le trier
svp veuillez m'aider
exemple de la matrice
0 15 20
15 0 60
20 30 0

2 réponses

  1. generak002 Messages postés 5 Statut Membre 2
     
    Salut KENZA15A,

    Voici la solution si j'ai bien compris ton problème :

    Integer[][] matrice = new Integer[3][3]; 

    matrice[0][0]=0;
    matrice[0][1]=15;
    matrice[0][2]=20;

    matrice[1][0]=15;
    matrice[1][1]=0;
    matrice[1][2]=60;

    matrice[2][0]=20;
    matrice[2][1]=30;
    matrice[2][2]=0;

    Integer[] tab=new Integer[9];
    int j=0;

    //Copier le tableau 2d dans un tableau 1d
    for (Integer[] is : matrice)
    {
    for (int i : is)
    {
    tab[j]=i;
    j++;
    }
    }
    //Trie le tableau 1d
    Arrays.sort(tab);
    //Inverse
    Collections.reverse(Arrays.asList(tab));

    //Affichage
    for (Integer i : tab)
    {
    System.out.println("tab : "+i);
    }
    2
  2. KENZA15A
     
    mrc bcp generak002 pour votre aide
    j'ai juste un petit pbm avec l'instruction
    Collections.reverse(Arrays.asList(tab)); elle genere une exception
    cette etape n'est q'un intermédiaire psk en effet je veut extraire les indices des n plus grands element de la matrice en eleminant bien sur les repetitions psk vous voyez que le diagonale est a 0 c une matrice de distance euclidienne
    nb:j'ai dit "n "psk la dimenssion de la matrice n'est pas fixe j'utilise tjrs un scanner pr l'identifier
    en tt cas merci pr l'idée je v chercher comment faire pr le cas generale
    matrice[n][n]
    0
    1. irmeche Messages postés 76 Statut Membre 17
       
      tu peux donner la trace de l'exception ?
      le code de generak002 doit fonctionner correctement .

      de tizi ?
      0