Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Schemat blokowy M START KONIEC

Podobne prezentacje


Prezentacja na temat: "Schemat blokowy M START KONIEC"— Zapis prezentacji:

1 Schemat blokowy M 1 2 3 4 START KONIEC
TAK M W pętli nr 1 zerujemy kolejne liczniki Tw [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. Tw[ ] - tablica liczników wartości o indeksach od wmin do wmax.

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

3 Schemat blokowy algorytmu scalania
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: i1 - młodszy podzbiór od pozycji ip do is - 1 oraz i2 - starszy podzbiór od pozycji is do ik. 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 i1 i i2 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 Schemat blokowy algorytmu scalania
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 i1 lub i2 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 ip do ik. 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.

5 Algorytm scalania Lista kroków algorytmu scalania
K01: i1 ← ip;   i2 ← is;   i ← ip K02: Dla i = ip, ip + 1, ..., ik: wykonuj     jeśli (i1 = is) ∨ (i2 ≤ ik  i d[i1] > d[i2]), to         p[i] ← d[i2];   i2 ← i2 + 1     inaczej         p[i] ← d[i1];   i1 ← i1 + 1 K03: Dla i = ip, ip + 1,...,ik: d[i] ← p[i] K04: Koniec

6 Algorytm sortujący Lista kroków algorytmu sortującego
K01: is ←  (ip + ik + 1) div 2 K02: Jeśli is - ip > 1, to podzbiór(ip, is - 1) K03: Jeśli ik - is > 0, to podzbiór(is, ik) K04: Scalaj(ip, is, ik) K05: Koniec 6

7 Schemat blokowy algorytmu sortującego
START Algorytm sortowania przez scalanie, należy do grupy algorytmów rekurencyjnych. Wywołuje się go z określonymi wartościami parametrów ip oraz ik Podczas pierwszego wywołania funkcji indeksy powinny objąć cały zbiór d - zatem ip=1, natomiast ik=n. Aby podzielić sortowany zbiór na dwie części wyznacza się indeks is - dla młodszej połowy elementy od ip do is-1, dla starszej o indeksach elementów od is do ik . 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. Is-ip>1 TAK podzbiór (ip , is – 1) Ik-is>0 TAK podzbiór (is ,ik– 1) Scalaj (ip, is ,ik) KONIEC


Pobierz ppt "Schemat blokowy M START KONIEC"

Podobne prezentacje


Reklamy Google