infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Adrian Craciun din Ianuarie 10, 2012, 20:34:41



Titlul: sortare matrice
Scris de: Adrian Craciun din Ianuarie 10, 2012, 20:34:41
cum sortezi o matrice folosind sort-ul din STL?
am creat o functie care compara 2 vectori. dar nu stiu cum e cel mai bine de a sorta matricea folosind sort-ul
vreo idee ? ms


Titlul: Răspuns: sortare matrice
Scris de: Cristian Lambru din Ianuarie 10, 2012, 23:44:12
Ai putea sa folosesti un vector suplimentar care sa pastreze indicii liniilor matricei, si sa sortezi lista aceasta de indici, comparand de fiecare data liniile intre ele.

Cod:
...

int cmp(int a,int b)
{
    //A[][]
    return A[a] < A[b]; //functia de comparare
}

...

int main()
{
    citeste(A);

    for(int i=1;i<=[Numar linii];i++)
       B[i] = i;

    sort(B+1,B+N+1,cmp);

    return 0;
}


Titlul: Răspuns: sortare matrice
Scris de: Petru Trimbitas din Ianuarie 10, 2012, 23:59:02
Vectorii din stl au definiti operatorul " < " deci cred ca daca faci vector<int> matr[dim]; si sort(matr,matr+n); s-ar putea sa mearga


Titlul: Răspuns: sortare matrice
Scris de: Tudor Tiplea din Ianuarie 12, 2012, 13:23:46
Nu stiu dupa ce criteriu vrei sa il sortezi dar de ex daca vrei sa sortezi toate elementele din matrice adica din
1 4 5  sa obtii 1 2 3
6 7 8             4 5 6
9 2 3             7 8 9  ai putea sa liniarizezi matricea.