| Zadanie 1. Sortowanie
Termin przysłania sprawozdania: 7.04.2025 (tylko PDF!)
Przebieg ćwiczenia:
I.
Porównaj szybkość działania 3 metod sortowania prostego: Bubble Sort, Insertion Sort, Selection Sort dla tablicy liczb całkowitych generowanych losowo.
Wyniki pomiarów przedstaw na wykresie t = f(n), gdzie: t - czas sortowania; n - liczba elementów tablicy.
Liczbę elementów należy dobrać w taki sposób, aby możliwe było wykonanie pomiarów. Wyniki przedstaw na 1 wykresie dla 15 punktów pomiarowych.
II.
Porównaj szybkość działania 3 metod sortowania szybkiego: Heap Sort, Merge Sort, Quick Sort dla tablicy liczb całkowitych generowanych losowo.
Wyniki pomiarów przedstaw na wykresie t = f(n), gdzie: t - czas sortowania; n - liczba elementów tablicy.
Liczbę elementów należy dobrać w taki sposób, aby możliwe było wykonanie pomiarów. Wyniki przedstaw na 1 wykresie dla 15 punktów pomiarowych.
Dla wykresów z punktów I i II sformułuj wnioski odnośnie złożoności obliczeniowej badanych metod i ich związku z efektywnością sortowania oraz zajętością pamięciową każdej z nich.
III.
Porównaj efektywność działania czterech algorytmów sortowania Insertion Sort, Selection Sort, Heap Sort, Merge Sort
dla danych wejściowych w postaci tablic:
losowej, posortowanej rosnąco, posortowanej malejąco, stałej i v-kształtnej.
Przedstaw 4 wykresy t = f(n) każdej metody sortowania osobno dla 5-ciu typów danych wejściowych.
Liczbę elementów należy dobrać w taki sposób, aby możliwe było wykonanie pomiarów.
Sformułuj wnioski odnośnie wpływu postaci ciągów wejściowych na czas sortowania (najgorsze, nalepsze przypadki).
IV.
Zaimplementuj algorytm Quicksort w wersji rekurencyjnej z różnymi sposobami wyboru klucza:
skrajnie prawego, środkowego co do położenia, losowego.
Utwórz wykres porównujący efektywność działania algorytmu w zależności od wyboru klucza dla A-kszytałtnego ciągu wejściowego.
Sformułować wnioski dotyczące wpływu wyboru klucza na działanie algorytmu (najgorsze, najlepsze przypadki)?
Pseudokody
Pseudokod Quicksort - wersja iteracyjna
| © Copyright by Maciej Machowiak Instytut Informatyki Politechniki Poznańskiej
|
|
|
|