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.

Slides:



Advertisements
Podobné prezentace
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, Kladno,
Advertisements

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, Kladno,
Vnitřní řazení v poli (in sito)
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, Kladno,
Třídění Seminář IVT. Definice uspořádání skupiny dat (záznamů) dle daného klíče vzestupně (od nejmenší do největší hodnoty klíče) sestupně (od největší.
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, Kladno,
Řadicí algoritmy autor: Tadeáš Berkman.
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
Algoritmizace a programování Třídící algoritmy - 12
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
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, Kladno,
Algoritmizace a programování Pole – Příklady 3. Třídění polí V poli máme prvky a chceme je setřídit: V poli máme prvky a chceme je setřídit: od nejmenšího.
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, Kladno,
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Algoritmizace a datové struktury (14ASD)
Transkript prezentace:

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, Kladno, Číslo projektu: CZ.1.07/1.5.00/ Čí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á/ 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

 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:

 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:

 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.

 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

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 Obr. 1

8 Obr. 2

 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

 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 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 cyklu Zobraz vektor A[N] Srovnává se postupně každý prvek nesetříděné posloupnosti s prvním prvkem nesetříděné posloupnosti.

 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

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 Obr. 3

 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

 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 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 cyklu 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.

 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

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

 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

 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

 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 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 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 Pokud se nic neměnilo, řada čísel byla setříděna. Konec Konec cyklu Zobraz vektor A[N] Měnilo se pořadí, je nutné projít řadu znovu.

 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

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 Obr. 4

 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

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

 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

 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

 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 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 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 2 H:= PZM Zobraz vektor A[N] Konec Posune se dolní mez. Zda se již meze překryly?

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  Není-li uvedeno jinak jsou vývojové diagramy vlastní tvorby.  Obr. 1. MARCO POLO. [online]. [cit ]. Dostupný pod licencí volné dílo na WWW:  Obr. 2. JOESTAPE89. [online]. [cit ]. Dostupný pod licencí Svobodné licence GNU pro dokumenty na WWW: 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.  Obr. 3 NMNOGUEIRA. [online]. [cit ]. Dostupný pod licencí Creative Commons na WWW:  Obr. 4 SIMPSONS CONTRIBUTOR. [online]. [cit ]. Dostupný pod licencí GNU Free Documentation License na WWW: 37