Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [c#] come ordinare una matrice

    Salve a tutti, ho questa matrice

    3 1
    10 1
    30 1
    41 1
    10 4
    21 4
    30 4
    10 7
    10 10
    30 10

    e ho bisogno di ordinarla rispetto ai valori della prima colonna.
    Ciò che dovrei ottenere è questa matrice qui sotto

    3 1
    10 1
    10 4
    10 7
    10 10
    21 4
    30 1
    30 4
    30 10
    41 1

    Ho scritto questo codice

    codice:
    int[,] id = matrixPlusSort;
                int[,] idcol = new int[matrixPlusSort.GetLength(0), matrixPlusSort.GetLength(1)];
                int a;
                int b;
                int d;
                for (int i = 0; i < matrixPlus.GetLength(0); i++)
                {
    
                    a = id[i, 0];
                    d = id[i, 1];
                    b = i;
                    int b1 = i;
                    while ((b > 0) && (id[b - 1, 0] > a))
                    {
                        id[b, 0] = id[b - 1, 0];
                        b = b - 1;
                    }
                    id[b, 0] = a;
                    idcol[b, 1] = d;
                    idcol[b1, 1] = d;
                }
                int[,] id3 = new int[matrixPlusSort.GetLength(0), matrixPlusSort.GetLength(1)];
                for (int i = 0; i < matrixPlus.GetLength(0); i++)
                {
                    id3[i, 0] = id[i, 0];
                    id3[i, 1] = idcol[i, 1];
                }
    e quello che ottengo in uscita è questa matrice

    3 1
    10 1
    10 4
    10 7
    10 10
    21 4
    30 4 * (1)
    30 7 * (4)
    30 10
    41 10* (1)

    La prima colonna torna ordinata come voglio io, ma nella seconda colonna, alcuni valori sono sbagliati. Ho segnato con l'asterisco le righe che riportano l'errore sulla seconda colonna e tra parentesi il valore che avrebbe dovuto avere.

    Potete aiutarmi a capire dove sto sbagliando?

    Grazie mille a tutti!!!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.