Proszę wybrać jedno z zadań opisanych poniżej. Za każde z nich można uzyskać maksymalnie 3 punkty. Tym razem konieczne jest przedstawienie dokumentacji projektu, to znaczy dokładnego opisu działania poszczególnych funkcji oraz znaczenia zmiennych.
Zadanie 1. Zbadać doświadczalnie złożoność obliczeniową algorytmu sortowania Shella przy różnych ciągach przyrostów. Należy sprawdzić wybrane trzy klasyczne ciągi o różnych spodziewanych złożonościach obliczeniowych (por. wikipedia). Dodatkowo należy przeprowadzić doświadczenia dla 3 własnych ciągów.
Oczekuję doświadczalnego porównania złożoności obliczeniowej – zilustrowanego wykresem wykonanym np. w Excelu, prezentującym ilość wykonanych porównań i przestawień przy sortowaniu tablicy przechowującej 10000 liczb całkowitych wylosowanych z zakresu do 1000 dla każdego z ciągów.
Zadanie 2. Szachownica o wymiarach 8x8 ma pomalowane pola w przypadkowy sposób na dwa kolory: biały i czarny. Problem polega na określeniu liczby białych obszarów i ich wielkości. Za biały obszar uważamy pola pomalowane na biało stykające się ze sobą bokami. Za wielkość obszaru uznajemy oczywiście ilość pól w obszarze. Klasyczna szachownica ma 32 obszary o wielkości 1.
Proszę napisać program, w którym losowo wygeneruje się sposób pomalowania szachownicy.
Graficznie należy ją przedstawić jako tablicę wypełniona literami ‘b’ i ‘c’ symbolizującymi pola białe i czarne. Dla uproszczenia implementacji proszę skorzystać z tablicy 10x10, w której skrajne wiersze i kolumny są wypełnione przez ‘c’. Program powinien zwracać informacje o ilości i wielkości wygenerowanych białych obszarów.
Należy przeanalizować tablicę wiersz po wierszu i po napotkaniu pierwszego nieodwiedzonego pola wywołać funkcję przetwarzającą cały obszar. Proszę użyć czterech wywołań rekurencyjnych tej funkcji dla każdej odwiedzonej białej komórki. Informacje o tym, które komórki zostały odwiedzone można przechowywać w dodatkowej tablicy 10x10.
Zadanie 3. Proszę napisać program pokazujący graficznie kolejne etapy rozwiązania problemu 8 hetmanów (ustawienie na szachownicy o wymiarach 8x8 ośmiu hetmanów tak, aby żaden z nich nie
„bił” żadnego tzn. nie był z nim ustawiony w tej samej linii poziomej pionowej ani skośnej) metodą powrotów (zob. plik rekurencja).