Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost 1. KŠPA Kladno, s. r. o., Holandská 2531, 272 01 Kladno, www.1kspa.cz.

Podobné prezentace


Prezentace na téma: "Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost 1. KŠPA Kladno, s. r. o., Holandská 2531, 272 01 Kladno, www.1kspa.cz."— Transkript prezentace:

1 Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost 1. KŠPA Kladno, s. r. o., Holandská 2531, 272 01 Kladno, www.1kspa.cz Číslo projektu: CZ.1.07/1.5.00/34.0292 Číslo materiálu: VY_32_INOVACE_VYA-1-20 Tematický celek (sada): Algoritmizace Téma (název) materiálu: Třídící vývojové diagramy Předmět: Vývoj aplikací Ročník / Obor studia: 1.ročník/ Informační technologie Autor / datum vytvoření: Ing. Bc. Jaroslava Horová/08.02.2014 Anotace: Žáci se seznámí se seznámí s pojmem třídící vývojové diagramy. Metodický pokyn: Určeno k prezentaci nebo samostudiu. 1

2  data řadíme podle velikosti nebo alfanumerických údajů  úlohy hromadného zpracování dat  data po setřídění jsou snadněji a rychleji analyzovatelná  načtená data musí být před tříděním uložena  Výsledné číslo ve dvojkové soustavě zapisujeme od spodu: 1000110 2

3  podle zadání vstupních dat: 1. setřídění předem známého počtu čísel nebo znaků 2. setřídění neznámého počtu čísel  podle vlastního způsobu seřazování: 1. složitostí vývojového diagramu 2. počtem pomocných proměnných 3. počtem porovnání  Výsledné číslo ve dvojkové soustavě zapisujeme od spodu: 1000110 3

4  na začátku vývojového diagramu pro třídění se vyskytuje načtení dat, je pro všechny třídící vývojové diagramy stejné  ve vývojovém diagramu nebude rozpracováno načtení dat, bude označeno značkou podprogramu 4 Načti vektor A[N] Načtení n čísel do strukturované proměnné pole A o n položkách.

5  postupně vybíráme jeden prvek po druhém a porovnáváme s prvním prvkem nesetříděné posloupnosti, je-li prvek, který je na řadě menší než první, vymění se  vzestupné třídění – od nejmenšího prvku k největšímu, popř. od A do Z  sestupné třídění – od největšího k nejmenšímu, popř. od Z do A 5

6 Výhody:  velmi jednoduchá metoda  snadno naprogramovatelná Nevýhody:  velký počet porovnání, který se nesníží ani tím, že jsou prvky částečně nebo úplně setříděny  poměrně náročná na čas 6

7 7 Obr. 1

8 8 Obr. 2

9  Princip řešení: 1. načteme všechny položky do pole n – podprogram Načti vektor A[N] 2. najdeme ze všech položek minimum a uložíme do položky A[1] 3. v položce A[1] máme minimum, nebudeme si jí nadále všímat, ze zbývajícího počtu položek n-1 najdeme minimum a uložíme do položky A[2] a tak dále 9

10  vývojový diagram se bude skládat ze dvou vnořených cyklů  vnitřní cyklus: minimum z řady čísel – metoda přímého výběru – řídící proměnná cyklu má dolní mez stanovenou obecně  vnější cyklus – nastavení dolní meze řídící proměnné vnitřního cyklu 10

11 11 Začátek Nastavení dolní meze řídící proměnné vnitřního cyklu. Vnitřní cyklus vyhledává minimum z dosud nesetříděných prvků. POM:= A[I] A[I]:= A[J] A[J]:= POM Konec Cyklus 1 I: =1,N-1 Konec cyklu2 Načti vektor A[N] Cyklus 2 J: =I +1,N Konec cyklu1 1 + - 1 Zobraz vektor A[N] Srovnává se postupně každý prvek nesetříděné posloupnosti s prvním prvkem nesetříděné posloupnosti.

12  název vychází z analogie s kapalinou s různě velkými bublinkami vzduchu, nejdříve vybublá nahoru ta největší  princip postupného porovnávání dvou sousedících prvků, je-li prvek větší než následující, prohodí se 12

13 Výhody:  velmi jednoduchá metoda  snadno naprogramovatelná Nevýhody:  velký počet porovnání, který se nesníží ani tím, že jsou prvky částečně nebo úplně setříděny (každý s každým)  poměrně náročná na čas 13

14 14 Obr. 3

15  Princip řešení: 1. načteme všechny položky do pole n – podprogram Načti vektor A[N] 2. najdeme ze všech položek maximum a uložíme do položky A[N] 3. v položce A[N] máme maximum, nebudeme si jí nadále všímat, ze zbývajícího počtu položek n-1 najdeme maximum a uložíme do položky A[N-1] a tak dále 15

16  vývojový diagram se bude skládat ze dvou vnořených cyklů  vnitřní cyklus: maximum z řady čísel – metoda probubláváním– řídící proměnná cyklu má dolní mez stanovenou obecně  vnější cyklus – nastavení horní meze řídící proměnné vnitřního cyklu 16

17 17 Začátek Nastavení horní meze řídící proměnné vnitřního cyklu. Vnitřní cyklus vyhledává maxima z dosud nesetříděných prvků. POM:= A[J] A[J]:= A[J+1] A[J+1]:= POM Konec Cyklus 1 I: =N,2 Konec cyklu2 Načti vektor A[N] Cyklus 2 J: = 1,I-1 Konec cyklu1 1 + - 1 Zobraz vektor A[N] Srovnává se postupně každý prvek nesetříděné posloupnosti s prvkem o jedno vyšším nesetříděné posloupnosti.

18  základem je předchozí vývojový diagram, ale vylepšený o test, zda je řada setříděna nebo ne  pokud jsou prvky setříděny, nepokračuje se v procházení prvků a třídění se ukončí dříve 18

19 Výhody:  pokud jsou data částečně nebo úplně setříděna, algoritmus se ukončí dříve  je-li na začátku řady velký prvek, rychle se dostane na konec Nevýhody:  velký počet porovnání, pokud není posloupnost úplně setříděna  je-li na konci řady malý prvek, pomalu se dostane na začátek 19

20  Princip řešení: 1. základem je algoritmus Bubble Sort zjednodušený 2. zavedeme novou proměnnou ZM – indikátor, zda došlo alespoň jednou během jednoho porovnávání k prohození prvků 20

21  Princip řešení: 3. před vstupem do vnitřního cyklu nastavíme ZM na 0 4. do vnitřního cyklu, v místě, kde dochází k prohození hodnot prvků v případě, že je prvek větší než následující, přidáme indikátor změny ZM a nastaví na 1 21

22  Princip řešení: 5. po dokončení celého průchodu řadou čísel, po opuštění vnitřního cyklu se otestujeme, zda se měnilo pořadí (ZM = 1), nebo zda byla setříděna (ZM = 0) 6. pokud se něco na pořadí měnilo, pak pokračujeme v rámci vnitřního cyklu, jinak je setříděno 22

23 23 Začátek Vynuluje se indikátor změny pořadí. Cyklus 1 I: =N,2 Konec cyklu2 Načti vektor A[N] Cyklus 2 J: = 1,I-1 1 + - Měnilo se pořadí indikátor změny se nastaví na 1. ZM:= 0 POM:= A[J] A[J]:= A[J+1] A[J+1]:= POM ZM:= 1

24 24 Pokud se nic neměnilo, řada čísel byla setříděna. Konec Konec cyklu1 1 + - Zobraz vektor A[N] Měnilo se pořadí, je nutné projít řadu znovu.

25  odstraňuje nevýhodu s pomalým přesouváním malých prvků  pokud jsou prvky setříděny, nepokračuje se v procházení prvků a třídění se ukončí dříve 25

26 Výhody:  řada se rovná zároveň od začátku a od konce  odstraňuje nedostatky předchozích Nevýhody:  složitější zápis vývojového diagramu 26

27 27 Obr. 4

28  vychází z klasického Bubble Sort  oproti Bubble Sort má dvě zlepšení: 1. jednou se řada prochází zepředu dozadu a „vybublá“ největší prvek zleva doprava; podruhé se prochází odzadu dopředu a „potopí“ se nejmenší prvek zprava doleva, řada se rovná od začátku a od konce, nejdéle nesetříděná je uprostřed, hlídají se horní a dolní meze, které se postupně posouvají doprostřed řady, algoritmus končí při překrytí mezí 28

29 2. hlídání místa, kde došlo k poslední změně pořadí – zavede se proměnná PZM (poslední změna), do které se ukládá pořadí prvku, který se přehazoval se sousedním 29

30  Princip řešení: 1. zavedeme PZM, do níž se ukládá pořadí (index) prvku, který se přehazoval se sousedním, jestliže za tímto prvkem nedojde ke změně – posloupnost je tam setříděna 2. v dalším kroku můžeme posloupnost procházet až od místa poslední změny 30

31  Princip řešení: 3. horní mez (proměnná H) při směru dolů bude rovna místu poslední změny, ale zmenšenému o hodnotu 1 (PZM – 1) 4. dolní mez (proměnná D) při směru nahoru bude rovna místu poslední změny, ale zvětšenému o hodnotu 1 (PZM + 1) 31

32  D – dolní mez nesetříděné části posloupnosti  H – horní mez nesetříděné části posloupnosti  PZM – místo poslední změny v posloupnosti  J – řídící proměnná cyklů, ve kterých se nachází nesetříděná část posloupnosti  A[J] – J-tý prvek v řadě  A[J+1] – prvek, který stojí oproti J-tému o jednu vpravo, ke konci řady 32

33 33 Začátek Načti vektor A[N] D:= 1 H:= N - 1 PZM:= 1 Cyklus 1 J: =D, H + - POM:= A[J] A[J]:= A[J+1] A[J+1]:= POM PZM:= J Konec cyklu1 1 3 Dolní mez je na začátku, horní mez umožní srovnání s prvkem o jedno vyšším a PZM nepřekáží. Průchod řadou zdola nahoru. Poslední změna se uloží.

34 34 1 H:= PZM - 1 Cyklus 2 J: =H, D + - POM:= A[J] A[J]:= A[J+1] A[J+1]:= POM PZM:= J Konec cyklu2 2 Posune se horní mez. Průchod řadou seshora dolů. Poslední změna.

35 35 2 H:= PZM + 1 + - 3 Zobraz vektor A[N] Konec Posune se dolní mez. Zda se již meze překryly?

36 Materiály jsou určeny pro bezplatné používání pro potřeby výuky a vzdělávání na všech typech škol a školských zařízení. Jakékoli další využití podléhá autorskému zákonu.  PŠENČÍKOVÁ, Jana. Algoritmizace. Kralice na Hané: Computer Media s.r.o., 2007, ISBN 80-86686-80-9  Není-li uvedeno jinak jsou vývojové diagramy vlastní tvorby.  Obr. 1. MARCO POLO. http://cs.wikipedia.org [online]. [cit. 21.1.2014]. Dostupný pod licencí volné dílo na WWW: http://commons.wikimedia.org/wiki/File:Selection_sort_animation.gif?uselang=cs  Obr. 2. JOESTAPE89. http://cs.wikipedia.org [online]. [cit. 21.1.2014]. Dostupný pod licencí Svobodné licence GNU pro dokumenty na WWW: http://commons.wikimedia.org/wiki/File:Selection-Sort-Animation.gif 36

37 Materiály jsou určeny pro bezplatné používání pro potřeby výuky a vzdělávání na všech typech škol a školských zařízení. Jakékoli další využití podléhá autorskému zákonu.  Obr. 3 NMNOGUEIRA. http://cs.wikipedia.org/wiki/Bublinkov%C3%A9_%C5%99azen%C3%AD [online]. [cit. 6.2.2014]. Dostupný pod licencí Creative Commons na WWW: http://commons.wikimedia.org/wiki/File:Bubble_sort_animation.gif  Obr. 4 SIMPSONS CONTRIBUTOR. http://en.wikipedia.org/wiki/Cocktail_sort [online]. [cit. 6.2.2014]. Dostupný pod licencí GNU Free Documentation License na WWW: http://en.wikipedia.org/wiki/File:Sorting_shaker_sort_anim.gif 37


Stáhnout ppt "Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost 1. KŠPA Kladno, s. r. o., Holandská 2531, 272 01 Kladno, www.1kspa.cz."

Podobné prezentace


Reklamy Google