Repetytorium - Ćwiczenia 7


Poprzednie Następne
Temat: Algorytmy sortowania.

Podczas zajęć należy wykonać jedno zadanie, które będzie realizowało określone funkcje w sposób ustalony podczas ćwiczeń. Projekt stworzony podczas zajęć jest obowiązujący dla wszystkich, a na jego wpływ można mieć jedynie podczas zajęć.

Specyfikacja:

Należy do zaimplementowanej na poprzednich zajęciach tablicy dołożyć zamiast zaistniałego tam sortowania kilka różnych możliwości wykonania kilku różnych sortowań. I tak może to być:
  1. Sortowanie tablicy przez wybieranie/wstawianie (elementu najmniejszego).
  2. Sortowanie bąbelkowe.
  3. Sortowanie przez scalanie.
  4. Sortowanie metodą quicksort.
  5. Sortowanie przez zliczanie.

Projekt:

Do realizacji projektu należy użyć zaimplementowanych na poprzednich zajęciach klas. W ramach projektu stworzone zostanie 6 nowych klas:
  1. ISorter - interfejs, lub klasa abstrakcyjna do sortowania tablicy.
  2. SorterBabelkowy - klasa dziedzicząca z iSorter, która jest odpowiedzialna za sortowanie bąbelkowe (pkt 2).
  3. SorterPrzezScalanie - klasa dziedzicząca z iSorter, która jest odpowiedzialna za sortowanie przez scalanie (pkt 3).
  4. SorterQSort - klasa dziedzicząca z iSorter, która jest odpowiedzialna za qicksort (pkt 4).
  5. SorterPrzezWybieranie - klasa dziedzicząca z iSorter, która jest odpowiedzialna za sortowanie przez wybieranie/wstawianie (pkt 1).
  6. SorterPrzezZliczanie - klasa dziedzicząca z iSorter, która jest odpowiedzialna za sortowanie przez zliczanie (pkt 5).
W klasie Tablica należy zmienić metodę "sortuj" w taki sposób, aby jako parametr podawać jej obiekt klasy ISorter.

W klasie abstrakcyjnej iSorter mają znaleźć się następujące metody: We wszystkich klasa pochodnych Sorter_X_ ma się znaleźć metoda sortuj zaimplementowana w odpowiedni sposób, zależnie od przyjętej metody sortowania. Oprócz tego w klasach SorterPrzezWybieranie i SorterPrzezZliczanie ma się znaleźć konsktruktor, który podczas tworzenia jest w stanie zapamiętać Tablicę, aby później podczas sortowania móc się odwołać do metod odpowiednio "IndeksMinimumZakres" (trzeba zmienić tą metodę na publiczną) oraz "ZliczElementy".

Zadanie

Zaimplementuj opisany powyżej projekt oraz metody.