Cum să sortați matrice 2d în Java

Cum Sa Sortati Matrice 2d In Java



O matrice bidimensională sau 2D este o colecție de coloane și rânduri. Programatorii pot accesa aleatoriu elementele matricei 2D sau fiecare celulă în mod individual, utilizând indecșii acestora. Cu ajutorul sortării, elementele matricei sunt aranjate în funcție de cerințe, fie în ordine crescătoare sau descrescătoare. Mai precis, Java „ Array.sort() ” poate fi utilizat pentru elementele unui tablou 2D dintr-un program.

Acest tutorial va discuta cum să sortați matrice 2D în Java.

Cum se sortează matrice 2D în Java?

În Java, puteți sorta o matrice 2D folosind:







Vom discuta acum fiecare dintre metodele menționate una câte una.



Metoda 1: Sortarea pe rând a matricei 2D în Java

În sortarea pe rând, puteți utiliza „ Array.sort() ” metoda de sortare a elementelor matricei. Acesta repetă fiecare element dintr-un anumit rând și schimbă numerele întregi atunci când elementul curent este mai mare decât următorul.



Să vedem un exemplu pentru a înțelege partea de implementare.





Exemplu
În acest exemplu, mai întâi vom crea o metodă statică „ rowWiseSorting() ” pentru a sorta matricea în ordine crescătoare apelând „ Arrays.sort() ” metoda clasei Arrays și apoi tipăriți elementele sortate ale matricei folosind ” pentru ” bucle:

static int rowWise Sorting ( int arr [ ] [ ] ) {
pentru ( int i = 0 ; i < arr. lungime ; i ++ ) {
Matrice. fel ( arr [ i ] ) ;
}
pentru ( int i = 0 ; i < arr. lungime ; i ++ ) {
pentru ( int j = 0 ; j < arr [ i ] . lungime ; j ++ ) {
Sistem. afară . imprimare ( arr [ i ] [ j ] + ' ' ) ;
}
Sistem. afară . println ( ) ;
}
întoarcere 0 ;
}

Aici, avem o matrice 2D numită „ arr ” de formă matriceală 3×3 (trei rânduri și trei coloane). Acum, pentru a sorta rândurile matricei create, vom numi metoda „ rowWiseSorting() ” prin trecerea matricei ca argument în metoda main():



public static gol principal ( Şir [ ] argumente ) {
int arr [ ] [ ] = nou int [ ] [ ] {
{ 12 , 14 , 4 } ,
{ 14 , 23 , douăzeci } ,
{ 28 , 25 , 8 } ,
{ unsprezece , 5 , 1 } } ;
rowWise Sorting ( arr ) ;
}
}

După cum puteți vedea, ne-am sortat matricea în ordine crescătoare:

Doriți să încercați sortarea pe coloane în Java? Aruncă o privire la următoarea secțiune.

Metoda 2: Sortarea pe coloane a matricei 2D în Java

Pentru a sorta pe coloane o matrice 2D în Java, apelați „ Arrays.sort() ” metoda cu un “ Interfață de comparație ”. O interfață Comparator definește un „ comparaţie() ” metodă care acceptă doi parametri și apoi îi compară între ei. Dacă parametrii trecuți sunt egali, returnează zero. Dacă primul parametru este mai mare decât al doilea parametru, returnează o valoare pozitivă. Dacă nu, se returnează o valoare negativă.

Exemplu
În acest exemplu, vom crea o metodă numită „ columnWiseSorting() „cu două argumente, o matrice 2D” arr[][] ” și un număr de coloană numit „ colmn ”. Apoi, sunați „ Arrays.sort() ” metoda cu “ Interfață de comparație ” pentru a compara valorile unei coloane. În cele din urmă, vom tipări valorile coloanei sortate a matricei folosind „ pentru ” bucle:

static gol columnWiseSorting ( int arr [ ] [ ] , int colmn ) {
Matrice. fel ( arr , nou Comparator < int [ ] > ( ) {
public int comparaţie ( int [ ] în primul rând , int [ ] scnd ) {
dacă ( în primul rând [ colmn - 1 ] > scnd [ colmn - 1 ] ) {
întoarcere 1 ;
}
altfel întoarcere - 1 ;
}
} ) ;
}
pentru ( int i = 0 ; i < arr. lungime ; i ++ ) {
pentru ( int j = 0 ; j < arr [ i ] . lungime ; j ++ ) {
Sistem. afară . imprimare ( arr [ i ] [ j ] + ' ' ) ;
}
Sistem. afară . println ( ) ;
}

Vom folosi matricea deja creată numită „ arr ” și transmiteți-l la „ columnWiseSorting() „ ca prim parametru și „ 1 ” ca al doilea parametru:

columnWiseSorting ( arr , 1 ) ;

Executarea programului de mai sus va sorta prima coloană a matricei noastre 2D:

Compilăm toate informațiile esențiale pentru a sorta matricea 2D în Java.

Concluzie

În Java, o matrice 2D poate fi sortată pe rând sau pe coloană, conform cerințelor. Pentru sortarea pe rând, este utilizată numai metoda Array.sort(); cu toate acestea, în sortarea pe coloană, metoda Array.sort() este apelată cu interfața Comparator. Pentru sortarea pe rând, niciun parametru nu este transmis metodei Array.sort(), în timp ce, în metoda de sortare pe rând, numărul de coloane care trebuie sortate este menționat ca parametru. Acest tutorial a discutat metodele de sortare a matricei 2D în Java cu exemple.