HIK Elektronikus Felsőoktatási Tankönyv- és Szakkönyvtár
A Kempelen Farkas Felsőoktatási Digitális Tankönyvtár/vagy más megjelenítő által közvetített digitális tartalmat a felhasználó a szerzői jogról szóló 1999. évi LXXVI. tv. 33. paragrafus (4) bekezdésében meghatározott oktatási, illetve tudományos kutatási célra használhatja fel. A felhasználó a digitális tartalmat képernyőn megjelenítheti, letöltheti, arról elektronikus adathordozóra vagy papíralapon másolatot készíthet, adatrögzítő rendszerében tárolhatja. A Kempelen Farkas Felsőoktatási Digitális Tankönyvtár/vagy más megjelenítő weblapján található digitális tartalmak üzletszerû felhasználása tilos, valamint kizárt a digitális tartalom módosítása és átdolgozása, illetve az ilyen módon keletkezett származékos anyag további felhasználása.

8.1.3. A tömb elemeinek rendezése, keresés a tömbben

A tömb kiíratásához használhatunk egy egyszerű metódust:

private static void ShowArray(int[] k)

{

foreach (int j in k)

System.Console.Write(j.ToString()+" ");

System.Console.WriteLine();}

Ennek a segítségével vizsgáljuk meg az Array osztály lehetőségeit.

A Sort metódus, melynek egy paramétere van, helyben rendezi a paraméterként kapott tömböt.

Deklarációja:

public static void Sort(Array array);

Használata:

tm[0] = 1; tm[1] = 2; tm[2] = 17; tm[3] = 90; tm[4] = 4;

ShowArray(tm);

Array.Sort(tm);

ShowArray(tm);

Eredmény:

Az első kiíratáskor:

1 2 17 90 4

A második kiíratáskor:

1 2 4 17 90

Ebben az esetben a teljes tömb rendezésre kerül. Ha a Sort metódus három paraméteres változatát használjuk, akkor a tömb egy résztömbjét rendezhetjük.

Deklarációja:

public static void Sort(Array array, int index, int length);

Ekkor az index paramétertől kezdve a length paraméterben megadott hosszban képződik egy részhalmaza a tömb elemeinek, és ez kerül rendezésre.

Használata:

tm[0] = 1; tm[1] = 2; tm[2] = 17; tm[3] = 90; tm[4] = 4;

ShowArray(tm);

Array.Sort(tm,3,2);

ShowArray(tm);

Eredmény:

Az első kiíratáskor:

1 2 17 90 4

A második kiíratáskor:

1 2 17 4 90

Tehát csak a 90 és a 4 cserélt helyet, mert csak az utolsó két elem rendezését írják elő a paraméterek (3,2).

A rendezés következő esete, amikor két tömb paramétert használunk.

Deklarációja:

public static void Sort(Array keys, Array items);

Keys : egy egydimenziós tömb, mely tartalmazza a kulcsokat a rendezéshez

Items: elemek, melyek a Keys tömb elemeinek felelnek meg.

A metódus rendezi a keys tömb elemeit, és ennek megfelelően az items tömb elemeinek sorrendje is változik.

Használata:

A string tömb elemeinek kiíratásához használt metódus:

private static void ShowArrayST(string[] k)

{

foreach (string j in k)

System.Console.Write(j+" ");

System.Console.WriteLine();

}

tm[0] = 1; tm[1] = 34; tm[2] = 17; tm[3] = 90; tm[4] = 4;

string[] stm2 = new string[5] {"első","második","harmadik", "negyedik", "ötödik"};

ShowArray(tm);

ShowArrayST(stm2);

Array.Sort(tm,stm2);

ShowArray(tm);

ShowArrayST(stm2);

Eredmény az első kiíratás után:

1 34 17 90 4

első második harmadik negyedik ötödik

Eredmény a második kiíratás után:

1 4 17 34 90

első ötödik harmadik második negyedik

Az előző kulcsos rendezéshez hasonlóan, de csak részhalmaz rendezésre használható az alábbi metódus:

Deklaráció:

public static void Sort(Array keys, Array items, int index, int length);

keys: egy egydimenziós kulcsokat tartalmazó tömb

items: egy egydimenziós, a kulcsokhoz tartozó elemeket tartalmazó tömb

index: a rendezendő terület kezdőpozíciója

length: a rendezendő terület hossza

Használata:

tm[0] = 1; tm[1] = 34; tm[2] = 17; tm[3] = 90; tm[4] = 4;

string[] stm2 = new string[5] {"első","második","harmadik", "negyedik", "ötödik"};

ShowArray(tm);

ShowArrayST(stm2);

Array.Sort(tm,stm2,3,2);

ShowArray(tm);

ShowArrayST(stm2);

Eredmény az első kiíratás után:

1 34 17 90 4

első második harmadik negyedik ötödik

Eredmény a második kiíratás után:

1 34 17 4 90

első második harmadik ötödik negyedik

Következzen néhány alapfeladat, melyenek megoldásához tömböket használunk.