I_R_W14_M27_Java Metoda Quicksort
jak przeanalizować pseudokod, który jest zapisem algorytmu sortowania szybkiego,
jaki jest czas działania algorytmu quick sort, w tym dla przypadku optymistycznego i pesymistycznego,
jak zastosować algorytm sortowania przykładowej tablicy za pomocą algorytmu quick sort,
jak zaimplementować algorytm quick sort w języku Java.
text=O(log2 n)
text=O(n2)
text=O(n)
Napisz program, który za pomocą algorytmu sortowania szybkiego posortuje n-elementowy zbiór znaków zbior. Swoje rozwiązanie sprawdź dla zadanego zbioru: zbior = ['a', 'f', 'z', 'b', 'd', 't'] oraz n = 6.
Specyfikacja:
Dane:
n– liczba naturalna, liczba elementów w zbiorzezbiorzbior[]–n-elementowy zbiór znaków, małe litery alfabetu łacińskiego
Wynik:
Program wyświetla najpierw nieposortowane elementy zbioru (oddzielone spacją), a następnie (w nowej linii) elementy zbioru posortowane alfabetycznie.
Twoje zadanie: Program ma wypisać elementy nieposortowanego zbioru zbior (kolejne elementy oddzielone spacją), a następnie w nowej linii elementy zbioru zbior po sortowaniu (kolejne elementy oddzielone spacją).
Przedstawiony kod jest implementacją algorytmu sortowania szybkiego w języku Java. Dla trzech zadanych n-elementowych tablic tab1, tab2, tab3 napisz kod odpowiadający za obliczenie głębokości drzewa wywołań rekurencyjnych funkcji sortuj(). Program na standardowe wyjście ma wypisać trzy głębokości drzew wywołań funkcji sortuj(), przy sortowaniu tablic tab1, tab2, tab3, każda wartość w nowej linii. Swój program przetestuj dla n = 16 i trzech tablic:
tablica z losowym rozkładem elementów
tab1 = {12, 1, 3, 15, 14, 2, 11, 4, 6, 5, 13, 10, 7, 9, 16, 8}tablica posortowana rosnąco
tab2 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}tablica posortowana malejąco
tab3 = {16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1}
Specyfikacja:
Dane:
n– liczba naturalna, liczba elementów w tablicachtab1,tab2itab3tab1[], tab2[], tab3[]– tablice liczb naturalnych
Wynik:
Program na standardowym wyjściu wypisuje trzy głębokości drzew wywołań rekurencyjnych funkcji sortuj(), przy sortowaniu trzech n-elementowych tablic tab1, tab2, tab3.
Twoje zadanie: Program wypisuje trzy głębokości drzew wywołań rekurencyjnych funkcji sortuj() uzyskane w trakcie sortowania trzech n‑elementowych tablic tab1, tab2, tab3.
Zapytano kilka osób o miesięczne zarobki, a ich odpowiedzi zebrano w n-elementowej tabeli zarobki. Użyj algorytmu sortowania szybkiego, aby znaleźć medianę (wartość środkową) zarobków w tej grupie.
Swoje rozwiązanie przetestuj dla następujących odpowiedzi ankietowanych: zarobki = {8500, 6400, 2800, 3500, 12870, 3300, 7020, 3000, 8100} oraz dla n = 9.
Specyfikacja:
Dane:
n– liczba naturalna, liczba ankietowanychzarobki[]– tablica liczb naturalnych, przechowująca zarobki ankietowanych
Wynik:
Program wyświetla medianę (wartość środkowa, rzeczywista) zarobków w grupie
Twoje zadanie: Program powinien wyświetlić jedną liczbę – medianę wartości zbioru.