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ć:
- Sortowanie tablicy przez wybieranie/wstawianie (elementu najmniejszego).
- Sortowanie bąbelkowe.
- Sortowanie przez scalanie.
- Sortowanie metodą quicksort.
- 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:
- ISorter - interfejs, lub klasa abstrakcyjna do sortowania tablicy.
- SorterBabelkowy - klasa dziedzicząca z iSorter, która jest odpowiedzialna za sortowanie bąbelkowe (pkt 2).
- SorterPrzezScalanie - klasa dziedzicząca z iSorter, która jest odpowiedzialna za sortowanie przez scalanie (pkt 3).
- SorterQSort - klasa dziedzicząca z iSorter, która jest odpowiedzialna za qicksort (pkt 4).
- SorterPrzezWybieranie - klasa dziedzicząca z iSorter, która jest odpowiedzialna za sortowanie przez wybieranie/wstawianie (pkt 1).
- 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:
- void sortuj(int[] tablicaLiczb, n wielkość_tablicy) - metoda abstrakcyjna, bez implementacji w tym miejscu
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.