Jak szybko posortować tablicę dwuwymiarową wedguł pierwszego wiersza. Przykład:
5 4 8 11 7 1 6
0 1 2 3 4 5 6
posortowana:
1 4 5 6 7 8 11
5 1 0 6 4 2 3
Może sort() z stl'a, ale jak tego użyć?
Jak szybko posortować tablicę dwuwymiarową wedguł pierwszego wiersza. Przykład:
5 4 8 11 7 1 6
0 1 2 3 4 5 6
posortowana:
1 4 5 6 7 8 11
5 1 0 6 4 2 3
Może sort() z stl'a, ale jak tego użyć?
Ta strona na pewno Ci pomoże
http://www.algorytm.org/index.php?option=com_content&task=category§ionid=4&id=13&Itemid=28
znam każdy z tych algorytmów i jakoś nie wiem jak odnieść to do tablicy dwuwymiarowej. Skoro tweirdzisz, że tak da sie posortować tablicę dwuwymairową (tzn, jeden wiersz sortuje, a drugi automatycznie zmienia się) to proszę o pomoc.
Może powiem inaczej, to tak, jakbym miał bazę danych z kolumnami A oraz B. Sortuje tylko kolumnę A.
Nie wpadłeś, że przy zamianie miejscami elementów z pierwszego wiersza powinieneś w ten sam sposób zamienić drugi wiersz?
zamień tab[0][i] z tab[0][j];
zamień tab[1][i] z tab[1][j];
Gdyby te algorytmy byłyby Ci tak znane, to byś rozwiązał ten problem.
Pierwszy z brzegu, bubblesort dla Twojej tablicy
int tablica[ 2 ][ 7 ] = { { 5 , 4 , 8 , 11 , 7, 1, 6 },
{ 0 , 1 , 2 , 3 , 4, 5, 6 } };
int _tmain(int argc, _TCHAR* argv[])
{
int temp = 0;
int zmiana = 0;
int i = 0;
int ile_liczb = 7;
do
{
zmiana=0;
i=ile_liczb-1;
do
{
i--;
if (tablica[0][i+1]< tablica[0][i])
{
temp=tablica[0][i];
tablica[0][i]=tablica[0][i+1];
tablica[0][i+1]=temp;
temp=tablica[1][i];
tablica[1][i]=tablica[1][i+1];
tablica[1][i+1]=temp;
zmiana=1;
}
}
while (i!=0);
}
while (zmiana!=0);
return 0;
}
Pisane na szybko.