Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Sortowanie dynamicznej tablicy dwuwymiarowej

Ostatnio zmodyfikowano 2016-01-07 13:41
Autor Wiadomość
Matis28
Temat założony przez niniejszego użytkownika
Sortowanie dynamicznej tablicy dwuwymiarowej
» 2016-01-06 13:58:50
Cześć mam mały problem. Chciałem napisać program który posortuje tablicę dwuwymiarową ale kompletnie nie mam pomysłu jak przerobić sortowanie tablicy 1 wymiarowej na 2 wymiarową. Oto co machnąłem dla 1 wymiarowej:
C/C++
int * tab;
int ile;
cout << "ile: ";
cin >> ile;
tab = new int[ ile ];
for( int i = 0; i < ile; i++ )
     cin >> tab[ i ];

cout << endl;

cout << "niesortowane: " << endl;
for( int i = 0; i < ile; i++ )
     cout << tab[ i ] << " ";

cout << endl;

for( int i = 0; i < ile; i++ )
for( int j = 0; j < ile - 1; j++ )
if( tab[ j ] > tab[ j + 1 ] )
     swap( tab[ j ], tab[ j + 1 ] );
P-142964
carlosmay
» 2016-01-06 14:17:19
  Chciałem napisać program który posortuje tablicę dwuwymiarową ale kompletnie nie mam pomysłu jak przerobić sortowanie tablicy 1 wymiarowej na 2 wymiarową.
1. Sortowanie pierwszego wymiaru. (napisz funkcję zamieniającą elementy)
2. Sortowanie drugiego wymiaru, dla każdego indeksu pierwszego wymiaru.

Przykład sortowania wierszy w tablicy dwuwymiarowej - bąbelkowe
P-142968
Matis28
Temat założony przez niniejszego użytkownika
» 2016-01-06 15:57:51
Nie rozumiem :(
P-142981
carlosmay
» 2016-01-06 16:52:39
Tablica dwuwymiarowa to tablica tablic.
Aby posortować wiersz uruchamiasz sortowanie dla pierwszego indeksu, a drugi zostaje stały(aby nie zmieniać wiersza w trakcie sortowania).

Natomiast dla posortowania wg wierszy należy uruchomić sortowanie dla drugiego indeksu.
  (napisz funkcję zamieniającą elementy)
 Funkcja std::swap() zamienia także miejscami całe tablice.
Rzadko z niej korzystam i myślałem, że działa dla pojedynczych zmiennych. Przepraszam z wprowadzenie w błąd.
P-142991
Matis28
Temat założony przez niniejszego użytkownika
» 2016-01-07 13:19:50
ok napisałem coś takiego i działa to nawet ładnie, sortuje mi to pięknie każdą kolumnę w tablicy ale nie wiem co dopisać aby posortowało mi teraz wiersze i doprowadziło do stanu gdzie w [0][0] będzie najmniejsza wartość a w [m][n] największa.
P-143054
carlosmay
» 2016-01-07 13:41:17
Zadawaj konkretne pytania.
Czy chodzi o takie coś?
1 3 5 9 7
5 4 6 8 3
6 4 9 8 1

==>
1 1 3 3 4
4 5 5 6 6
7 8 8 9 9
.
Tutaj jest także przenoszenie miedzy wierszami.

Proponuje coś prostszego. Sortowanie przez wstawianie.
P-143058
« 1 »
  Strona 1 z 1