sortowanie tablicy 2D

0

jak w turbo pascalu posortować tablice <ort>dwu wymiarową</ort> np. algorytmem bąbelkowym ?

0

2 wymiarową.. no dobra ale w jaki sposób należy poukładac ? :]
masz np:

4 8
9 1

I ma być

4 8 
1 9

czy np:

1 4
8 9

itd. itp. musisz sprecyzować

// chyba że są jakieś ogólnie przyjęte standardy :>

0

<ort>po kolei </ort>przez całą tablice czyli metoda 2

0

Powiedzmy, że t : array [0..n-1, 0..m-1], indeksuj ją tak: t[x div m, x mod m] i traktuj jak jednowymiarową.

0

albo zrobic to tak :

for z:=1 to max_i*max_k do //max_i*max_k - ilosc porownan do wykonania
  begin
  for i:=1 to max_i do
    for k:=1 to max_k-1 do
      begin

        if tab[i,k]>tab[i,k+1] then
          begin
            // zamiana wiekszej i mniejszej
            temp:=tab[i,k];
            tab[i,k]:=tab[i,k+1];
            tab[i,k+1]:=temp;
          end;

        // porownanie liczby z ostatniej komorki w wierszy
        // z liczba z pierwszej komorki w nastepnym wierszu
        if i<>max_i then
          if tab[i,k+1]>tab[i+1,1] then
            begin
              // zamiana wiekszej z mniejsza
              temp:=tab[i+1,1];
              tab[i+1,1]:=tab[i,k+1];
              tab[i,k+1]:=temp;
            end;


      end;

nie obiecam ze dziala na 100% bo pisalem to dawno.. i nie wiem czy jest to najbardziej optymalna wersja, ale moze Ci sie przydac

0

moglibyśnie wytłumaczyć sposób rozumowania bo nie <ort>zabardzo </ort>rozumiem

0

hmm.. mam nadzieje, ze rozumiesz samo sortowanie babelkowe ? chodzi o to, żeby porównywać element i-ty tablicy z i+1-szym... i teraz jesli i-ty jest wiekszy od i+1-szego to zamieniasz je miejscami [jesli sort od najmniejszej do najwiekszej]... takie porownania w tablicy jednowymiarowej musisz zrobic k - 1 (gdzie k to jest ilosc komorek w tablicy)..

dla tablicy dwuwymiarowej jest to takie, ze porownan musi byc wiecej.. jesli kiedys dobrze wyliczylem to k*l - 1 (k - ilosc wierszy, l - ilosc kolumn)... i trzeba pamietac o tym aby porownac ostatnia liczbe w wierszu z pierwsza liczba w wierszy nastepnym... wszytsko co tutaj wlasnie napisalem da sie wyczytac z kodu, ktory wczesniej podalem

btw.. prosilbym o zweryfikowanie ilosci porownan... czy wiersze*kolumny - 1 to nie za duzo ??

0

dzięki wcześnie nie rozumiałem bo myślałem że jednynki to l ;P

0

A jak posortowac KOlumny w tablicy 2 wymiarowej rosnaco?

1 użytkowników online, w tym zalogowanych: 0, gości: 1