Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Schemat blokowy W pętli nr 1 zerujemy kolejne liczniki T w [i]. W pętli nr 2 przeglądamy kolejne elementy zbioru, od pierwszego do ostatniego. Dla każdego.

Podobne prezentacje


Prezentacja na temat: "Schemat blokowy W pętli nr 1 zerujemy kolejne liczniki T w [i]. W pętli nr 2 przeglądamy kolejne elementy zbioru, od pierwszego do ostatniego. Dla każdego."— Zapis prezentacji:

1 Schemat blokowy W pętli nr 1 zerujemy kolejne liczniki T w [i]. W pętli nr 2 przeglądamy kolejne elementy zbioru, od pierwszego do ostatniego. Dla każdego elementu zwiększamy licznik o numerze równym danym wartościom elementów. Po tej pętli w kubełkach znajduje się określona liczba poszczególnych wartości elementów w sortowanym zbiorze. Zmienna j ma za zadanie umieszczać w zbiorze wyjściowym kolejne elementy – zaczynamy od początku zbioru dlatego j->1. W pętli 3 przeglądane są kolejne liczniki. Jeśli jego wartość jest większa od zera, to pętla 4 umieści w zbiorze wyjściowym odpowiednią ilość sortowanych liczb. Po zakończeniu pętli 3 elementy w zbiorze wyjściowym są posortowane. Koniec algorytmu. START KONIE C TAK Tw[ ] - tablica liczników wartości o indeksach od wmin do wmax. M

2 Lista kroków K01: Dla i = w min, w min + 1,...,w max : wykonuj T w [i] 0 K02: Dla i = 1,2,...,n: wykonuj T w [ d[i] ] T w [ d[i] ] + 1 K03: j 1 K04: Dla i = w min, w min + 1,...,w max : wykonuj K05 K05: Dopóki l w [i] > 0 wykonuj: d[j] i l w [i] l w [i] - 1 j j + 1 K06: Zakończ Tw[ ] - tablica liczników wartości o indeksach od wmin do wmax. M

3 W tablicy p algorytm będzie zapisywał zbiór tymczasowy, który po scalaniu zostanie przeniesiony do zbioru d[ ], zastępując dwa scalane podzbiory. Poszczególne elementy w podzbiorach zostały oznaczone w następujący sposób: i 1 - młodszy podzbiór od pozycji i p do i s - 1 oraz i 2 - starszy podzbiór od pozycji i s do i k. Na początku algorytmu przypisujemy tym zmiennym indeksy pierwszych elementów w każdym podzbiorze. Indeksy elementów wstawianych do tablicy p[ ] są zawarte w zmiennej i. Wewnątrz pętli sprawdzamy, czy indeksy i 1 i i 2 wskazują elementy podzbiorów. Jeśli któryś z nich wyszedł poza dopuszczalny zakres, to dany podzbiór jest wyczerpany - w takim przypadku do tablicy p przepisujemy elementy drugiego podzbioru. Elementy podzbiorów porównujemy tak długo dopóki jeden z nich nie będzie pusty.

4 Do tablicy p[ ] zawsze wpisujemy mniejszy z porównywanych elementów. Dzięki temu elementy są uporządkowane w tworzonym zbiorze wynikowym. Po zapisie elementu w tablicy p[ ], odpowiedni indeks i 1 lub i 2 jest zwiększany o 1. Rośnie także indeks i, aby kolejny zapisywany element w tablicy p[ ] trafił na następne wolne miejsce. Pętla jest kontynuowana aż do zapełnienia w tablicy p[ ] obszaru o indeksach od i p do i k. W końcowej pętli, zostaje przepisany ten obszar z tablicy p[ ] do tablicy wynikowej d[ ]. Scalane zbiory zostają zapisane zbiorem wynikowym, który jest posortowany rosnąco. M

5 Lista kroków algorytmu scalania K01: i 1 i p ; i 2 i s ; i i p K02: Dla i = i p, i p + 1,..., i k : wykonuj jeśli (i 1 = i s ) (i 2 i k i d[i 1 ] > d[i 2 ]), to p[i] d[i 2 ]; i 2 i inaczej p[i] d[i 1 ]; i 1 i K03: Dla i = i p, i p + 1,...,i k : d[i] p[i] K04: Koniec M

6 Lista kroków algorytmu sortującego K01: i s (i p + i k + 1) div 2 K02: Jeśli i s - i p > 1, to podzbiór(i p, i s - 1) K03: Jeśli i k - i s > 0, to podzbiór(i s, i k ) K04: Scalaj(i p, i s, i k ) K05: Koniec M

7 Algorytm sortowania przez scalanie, należy do grupy algorytmów rekurencyjnych. Wywołuje się go z określonymi wartościami parametrów i p oraz i k Podczas pierwszego wywołania funkcji indeksy powinny objąć cały zbiór d - zatem i p =1, natomiast i k =n. Aby podzielić sortowany zbiór na dwie części wyznacza się indeks i s - dla młodszej połowy elementy od i p do i s -1, dla starszej o indeksach elementów od i s do i k. Kolejnym krokiem jest sprawdzenie czy w danej części zbioru jest więcej niż jeden element. Jeśli tak, to rekurencyjnie sortujemy ją tym samym algorytmem. Kiedy oba podzbiory zostaną posortowane scalamy je według schematu opisanego w poprzednim punkcie. START I s -i p >1 podzbiór (i p, i s – 1) I k -i s >0 podzbiór (i s,i k – 1) Scalaj (i p, i s,i k ) KONIEC TAK


Pobierz ppt "Schemat blokowy W pętli nr 1 zerujemy kolejne liczniki T w [i]. W pętli nr 2 przeglądamy kolejne elementy zbioru, od pierwszego do ostatniego. Dla każdego."

Podobne prezentacje


Reklamy Google