Matrice en tableau

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

  • Votes
  • Date
  • Date décroissante
  1. 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);
    }
    1. 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]
      1. tu peux donner la trace de l'exception ?
        le code de generak002 doit fonctionner correctement .

        de tizi ?