Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Třídění dat. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_26 04

Podobné dokumenty
Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Typové a netypové soubory

Algoritmizace řazení Bubble Sort

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Podmíněný příkaz

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Textové soubory

Náplň. v Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění

NPRG030 Programování I, 2018/19 1 / :03:07

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Jednoduché příkazy jazyka Pascal

Algoritmizace prostorových úloh

Inovace a zkvalitnění výuky prostřednictvím ICT Programování se strukturovanými údaji Programové jednotky

IAJCE Přednáška č. 9. int[] pole = new int[pocet] int max = pole[0]; int id; for(int i =1; i< pole.length; i++) { // nikoli 0 if (Pole[i] > max) {

Obecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012

Sada 1 - Základy programování

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MS Access propojení relací s formuláři a sestavami Ing.

Digitální učební materiál

Výukový materiál zpracován v rámci projektu EU peníze školám

ANOTACE vytvořených/inovovaných materiálů

Inovace a zkvalitnění výuky prostřednictvím ICT Vytváření aplikací pro systém Windows

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MS Access formuláře a sestavy - vytváření Ing. Kotásek Jaroslav

Algoritmizace. 1. Úvod. Algoritmus

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MS Access složitější konverze dat Ing. Kotásek Jaroslav

Dynamické datové struktury III.

Inovace a zkvalitnění výuky prostřednictvím ICT Design a vzhledové vlastnosti webových stránek Vlastnosti CSS pro pozicování Ing.

Digitální učební materiál

Algoritmizace a programování

Název: Autor: Číslo: Únor Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1

Inovace a zkvalitnění výuky prostřednictvím ICT Tvorba webových stránek. Ing. Zelinka Pavel Číslo: VY_32_INOVACE_35 17 Anotace:

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MS Access generování složitějších sestav Ing. Kotásek Jaroslav

Digitální učební materiál

Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1

bfs, dfs, fronta, zásobník, prioritní fronta, halda

IB111 Úvod do programování skrze Python

SOUHRNNÝ PŘEHLED nově vytvořených / inovovaných materiálů v sadě

Cvičení ze společenských věd

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

Inovace a zkvalitnění výuky prostřednictvím ICT Pokročilé metody parametrického modelování

Inovace a zkvalitnění výuky prostřednictvím ICT

přirozený algoritmus seřadí prvky 1,3,2,8,9,7 a prvky 4,5,6 nechává Metody řazení se dělí:

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1

Hotelová škola, Obchodní akademie a Střední průmyslová škola Teplice, Benešovo náměstí 1, p.o. III/2 - Inovace a zkvalitnění výuky prostřednictvím ICT

Inovace a zkvalitnění výuky prostřednictvím ICT Vytváření aplikací pro systém Windows Víceřádkové vstupy komponenta Memo

Sada 1 - Základy programování

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Prioritní fronta, halda

bfs, dfs, fronta, zásobník, prioritní fronta, halda

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

Název: Téma: Autor: Číslo: Prosinec Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1

Řešení: PŘENESVĚŽ (N, A, B, C) = přenes N disků z A na B pomocí C

ALGORITMY A DATOVÉ STRUKTURY

ČEMU ROZUMÍ MIKROPROCESOR?

Název: Autor: Číslo: Červenec Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1

SEZNAM ANOTACÍ. CZ.1.07/1.5.00/ III/2 Inovace a zkvalitnění výuky prostřednictvím ICT VY_32_INOVACE_PS4 Obecná psychologie

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

vyhledávací stromové struktury

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Sada 1 - Základy programování

Pole a kolekce. v C#, Javě a C++

Binární soubory (datové, typované)

TGH07 - Chytré stromové datové struktury

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01

ANOTACE nově vytvořených/inovovaných materiálů

IB111 Úvod do programování skrze Python

Třídění a vyhledávání Searching and sorting

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Algoritmy I, složitost

Stromy, haldy, prioritní fronty

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1. Podpora digitalizace a využití ICT na SPŠ CZ.1.07/1.5.00/34.

DobSort. Úvod do programování. DobSort Implementace 1/3. DobSort Implementace 2/3. DobSort - Příklad. DobSort Implementace 3/3

Programovací jazyk Pascal

5. Vyhledávání a řazení 1

Třídící algoritmy. Insert Sort. Bubble Sort. Select Sort. Shell Sort. Quick Sort. Merge Sort. Heap Sort.

ANOTACE vytvořených/inovovaných materiálů

SEZNAM ANOTACÍ. CZ.1.07/1.5.00/ III/2 Inovace a zkvalitnění výuky prostřednictvím ICT VY_32_INOVACE_PS2 Psychologie osobnosti

Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce)

L81 - vrtání, centrování - referenční rovina (absolutně) - konečná hloubka vrtání - rovina vyjíždění

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Inovace a zkvalitnění výuky prostřednictvím ICT Elektrický proud střídavý Základní pojmy, časový průběh sin. veličin, střední.

Volba již definovaných nástrojů:

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Inovace a zkvalitnění výuky prostřednictvím ICT

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Identifikátor materiálu: ICT-4-01

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Programování v C++, 2. cvičení

ANOTACE nově vytvořených/inovovaných materiálů

Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1

Sada 1 - Základy programování

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Grafové algoritmy. Programovací techniky

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Grafové algoritmy. Programovací techniky

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Anotace vzdělávacích materiálů

1. Překresli. Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Inovace a zkvalitnění výuky prostřednictvím ICT

Transkript:

Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Třídění dat Autor: Číslo: Anotace: Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_26 04 Materiál popisuje principy třídění dat a související algoritmus hledání maxima. Materiál je určen pro 3. a 4. ročník oboru strojírenství a technické lyceum. Vytvořeno: prosinec 2012. Podpora digitalizace a využití ICT na SPŠ CZ.1.07/1.5.00/34.0632

4. Třídění dat třídění dat je jednou z nejčastějších úloh zadávanou počítačům existuje velké množství třídících algoritmů liší se od sebe rychlostí a počtem operací, které provádějí, ale také náročností naprogramování nelze jednoznačně vybrat jeden nejlepší třídící algoritmus, protože pro různé situace se hodí různé třídící postupy i ten nejpomalejší algoritmus může být v určité situaci vhodný, protože například pro setřídění malého množství dat by námaha spojená s psaním složitého kódu byla v nepoměru k zanedbatelné časové úspoře při třídění

Třídící algoritmy mezi nejjednodušší algoritmy, které sice data setřídí, ale zabere jim to hodně času, patří např. třídění výběrem (select sort) nebo bublinové třídění (bubble sort) velmi rychlé, ale náročné na naprogramování je tzv. rychlé třídění (quick sort) pro zatřiďování nových dat do již setříděné posloupnosti je vhodné např. třídění vkládáním (insert sort) speciální datovou strukturu pro uchovávání a zatřiďování dat používá např. třídění haldou (heap sort) další důležitou úlohou, která s tříděním dat často souvisí je hledání maxima (minima)

Hledání maxima / minima (1) nejedná se sice o klasický třídící algoritmus, protože jeho výstupem nejsou setříděná vstupní data, často je ale nejlepší hodnota ta jediná, která nás zajímá pak není potřeba zbytečně třídit všechna data místo složitého zpracování všech dat naráz, používá tento algoritmus (podobně jako člověk) postupné prohlížení dat s tím, že se snaží zapamatovat si dosud nejlepší nalezenou hodnotu k tomu používá pomocnou proměnnou (paměť), v níž si pamatuje jen tuto jednu hodnotu pokud při procházení hodnot nalezne lepší hodnotu než je zapamatovaná, zapamatuje si ji místo ní

Hledání maxima / minima (2) jakmile algoritmus projde všechny hodnoty, je dosud nejlepší nalezená hodnota zároveň nejlepší hodnota musíme ale také řešit problém vhodné inicializace pomocné proměnné (paměti) tak, aby její počáteční hodnota neovlivnila výsledek hledání uvažte například situaci, že nastavíme počáteční hodnotu 0 a uživatel nám zadá samá záporná čísla náš program bude tvrdit, že největší číslo je 0, i když mezi zadanými čísly vůbec nebylo proto se jako výchozí hodnota paměti běžně používá první (obecně lze kterákoliv) ze zadaných hodnot

Hledání maxima / minima (3) var a:array[1..10] of byte;... for i := 1 to 10 do readln(a[i]); max := a[1]; for i := 2 to 10 do if a[i] > max then max := a[i]; writeln('největší hodnota je ', max);

Třídění výběrem využívá hledání maxima k nalezení největšího prvku, který následně vymění s prvkem, který se dosud nacházel na místě, kam potřebujeme umístit nalezenou hodnotu postupně také zmenšuje prohledávanou oblast for i := 1 to 9 do begin max := a[i]; pozice := i; for j := i+1 to 10 do if a[j] > max then begin max := a[j]; pozice := j; end; a[pozice] := a[i]; a[i] := max; end;

Bublinové třídění využívá o něco složitější princip než třídění výběrem postupně porovnává jednotlivé dvojice sousedících hodnot a případně je zaměňuje, aby došlo k posunu lepší hodnoty dopředu postupně také zmenšuje prohledávanou oblast for i := 1 to 9 do begin for j := 9 downto i do if a[j+1] > a[j] then begin x := a[j+1]; a[j+1] := a[j]; a[j] := x; end;