Algoritmizace a datové struktury (14ASD)

Slides:



Advertisements
Podobné prezentace
Grafové algoritmy.
Advertisements

Opakování Co je výsledkem následujícího prográmku? my $a="kol"; my $b="o"; $a.= $b; $b.= $a; print "a = $a, b = $b\n"; Vkládání speciálních znaků? Uvozovací.
Algoritmizace Vývojové diagramy.
Vnitřní řazení v poli (in sito)
Cvičení Úloha 1: Rozhodněte zda posloupnost znaků v poli délky n tvoří palindrom (slovo, které je stejné při čtení zprava i zleva). Př.: [a,l,e,l,a] [a,n,n,a]
10. Dynamické datové struktury
ALGO – Algoritmizace 6. cvičení
Algoritmy a datové struktury
Semestrální práce KIV/PT Martin Kales Hana Hůlová.
Aplikace teorie grafů Základní pojmy teorie grafů
Algoritmy I Cvičení č. 5.
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ší.
Algoritmy I Cvičení č. 4.
Algoritmy I Cvičení č. 3.
Medians and Order Statistics Nechť A je množina obsahující n různých prvků: Definice: Statistika i-tého řádu je i-tý nejmenší prvek, tj., minimum = statistika.
Metody řazení s lineární časovou složitostí
Binární stromy, AVL stromy
1 Vyhledávání Principy vyhledávání Klasifikace klíče:  Interní klíč – je součástí prohlížených záznamů  Externí klíč – není jeho součástí, je jím např.
ALGO – Algoritmizace 9. cvičení 1.ročník, ZS Ing. Zdena DOBEŠOVÁ, Ph.D.
Řadicí algoritmy autor: Tadeáš Berkman.
ALGO – Algoritmizace 2. cvičení
Algoritmy a programovací techniky
Algoritmy vyhledávání a řazení
KIV/PPA1 cvičení 7 Cvičící: Pavel Bžoch. Osnova cvičení Zadání samostatné práce –Vysvětlení nejasností –Způsob odevzdání –Hodnocení Řazení Vyhledávání.
Algoritmizace a programování Třídící algoritmy - 12
Jiří Znoj - zno Tvorba konkordace Algoritmy II 3. projekt, 5. zadání Jiří Znoj - zno
ALGORITMIZACE A ZÁKLADY PROGRAMOVÁNÍ ŘAZENÍ PRVKŮ – OPAKOVANÝM VÝBĚREM NEJVĚTŠÍHO PRVKU (SELECTSORT) Vytvořila: RNDr. Ivanka Dvořáčková Gymnázium K. V.
ALGORITMIZACE A ZÁKLADY PROGRAMOVÁNÍ
ALGORITMIZACE A ZÁKLADY PROGRAMOVÁNÍ ŘAZENÍ PRVKŮ – PŘÍMOU VÝMĚNOU (BUBBLESORT) Vytvořila: RNDr. Ivanka Dvořáčková Gymnázium K. V. Raise, Hlinsko, Adámkova.
JavaScript Podmínky, cykly a pole.
2 CYKLUS S PEVNÝM POČTEM OPAKOVÁNÍ Podle řídící proměnné proveď n-krát příkaz P1.
KIV/PRO Cvičení N nejvyšších hodnot Mějme 2D čtvercové pole [1,..., n][1,..., n] – n 2 vzájemně různých kladných celých čísel Zkonstruujte.
Sorty Bubble, Insert a Quick
STROMY Datová struktura sestávající z uzlů
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B7 Autor Ing. Jiří Kalousek Období vytvoření listopad.
Algoritmizace - příklady algoritmů
ALGORITMIZACE A ZÁKLADY PROGRAMOVÁNÍ
Kompresní metoda ACB Associative Coder of Buyanovsky autor: George Buyanovsky připravil Tomáš Skopal podle knihy „Data Compression“ od D. Salomona, 1997,
ALGO – Algoritmizace 4. cvičení 1.ročník, ZS Ing. Zdena DOBEŠOVÁ, Ph.D.
Kompresní algoritmus LZW Dokumentografické informační systémy.
Grafický zápis algoritmů (vývojové diagramy) Test na trojúhelník (trojúhelníková nerovnost) Maximum ze tří čísel s použitím pomocné proměnné Pravoúhlý.
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 ZÁKLADY PROGRAMOVÁNÍ
Práce s řetězci Řetězec je libovolný text nebo libovolná skupina znaků. Řetězec se také označuje jako string. Činnosti prováděné s řetězci: Počítání znaků.
Kanonické indexování vrcholů molekulového grafu Molekulový graf: G = (V, E, L, ,  ) Indexování vrcholů molekulového grafu G: bijekce  : V  I I je indexová.
doc. RNDr. Zdeněk Botek, CSc.
OSNOVA: a) Algoritmy třídění b) Třídění dynamických záznamů Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 1 pro obor EST.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B5 Autor Ing. Jiří Kalousek Období vytvoření listopad.
VISUAL BASIC PRALG.
doc. RNDr. Zdeněk Botek, CSc.
ALGO – Algoritmizace 7. cvičení – ročník, ZS Ing. Zdena DOBEŠOVÁ, Ph.D.
Hledání silně souvislý komponent Silně souvislá komponenta orientovaného grafu G= (V,E) je maximální množina uzlů UV taková že ∀ u,v ∈ V : u je dosažitelné.
Algoritmizace a programování Algoritmy 2 – Vývojové diagramy (sekvence)
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.
Algoritmy vyhledávání a řazení Zatím nad lineární datovou strukturou (polem) …
Algoritmy vyhledávání a řazení Zatím nad lineární datovou strukturou (polem) …
Inf Cykly ve vývojových diagramech
Výukový materiál zpracován v rámci projektu
ZAL – 6. cvičení 2016.
Úvod do programování 6. hodina
Algoritmizace a programování
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
CYKLUS S PODMÍNKOU NA ZAČÁTKU (se vstupní podmínkou)
ALG 07 Selection sort (Select sort) Insertion sort (Insert sort)
Algoritmy vyhledávání a řazení
ALG 09 Radix sort (přihrádkové řazení) Counting sort
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Algoritmizace a datové struktury (14ASD)
Transkript prezentace:

Algoritmizace a datové struktury (14ASD) 9. cvičení

vytvoří se pole a a hodnoty jeho prvků se načtou ze vstupu, rozměr pole (počet prvků pole) je m na výstup se vypíše hodnota druhého prvku pole; CHYBA, pokud má pole pouze 1 prvek pokud první prvek (a[1]) má hodnotu >3, na výstup se vypíše počet prvků pole vytvoří se pole p, rozměr pole je 5 prvků - hodnoty prvků pole nejsou definovány prvek s indexem 1 pole p se nastaví na hodnotu 25

Vytvořte algoritmus, který načte pole čísel, vytvoří nové pole a zkopíruje do něj hodnoty prvků načteného pole zvětšené o číslo indexu prvku. 1 5 6 10 3 2 7 8 a i= 1 2 3 4 5 6 7 8 2 7 9 14 8 16 b

algoritmy řazení čísel

Bubble sort – řazení zaměňováním Vzestupné řazení: porovnává hodnoty dvou sousedních prvků, a pokud je nižší číslo napravo od vyššího, tak je prohodí a se stejnou logikou se pokračuje na dalším indexu. Pokud jsou čísla ve správném pořadí, tak je neprohodí – pouze postoupí na další index. prochází se pole a porovnávají se dva sousední prvky (index j a j+1). Pokud platí, že prvek s indexem j > prvek s indexem j+1, pak oba prvky zaměníme. na konci prvního provedení postupu se tímto způsobem na konec pole vždy dostane to největší číslo. po n-1 opakováních algoritmu je pole seřazeno (n je počet prvků v poli) http://www.algoritmy.net/article/3/Bubble-sort

Vzestupné setřídění čísel pomocí Bubble sort I. 1 2 3 4 5 6 7 5 8 4 9 7 2 1  5 4 8 9 7 2 1  5 4 8 7 9 2 1  5 4 8 7 2 9 1  5 4 8 7 2 1 9

Vytvořte algoritmus na postup, kterým se jednou projde pole, porovnávají se hodnoty sousedních prvků a pokud prvek s menším indexem má větší hodnotu než prvek s větším indexem, hodnoty obou prvků se vymění.

Vzestupné setřídění čísel pomocí Bubble sort II. na začátku: 5 8 4 9 7 2 1 po prvním zopakování postupu: 5 4 8 7 2 1 9 po druhém zopakování postupu: 4 5 7 2 1 8 9 po šestém zopakování postupu: 1 2 4 5 7 8 9

Efektivnější algoritmus Bubble sort všimněte si 5 8 4 9 7 2 1 1. 5 4 8 7 2 1 9 2. 4 5 7 2 1 8 9 3. 4 5 2 1 7 8 9 4. 4 2 1 5 7 8 9 5. 2 1 4 5 7 8 9 6. 1 2 4 5 7 8 9

Bubble sort Algoritmus (pro vzestupné seřazení): 1. prochází se pole a porovnávají se dva sousední prvky (index j a j+1). Pokud platí, že prvek s indexem j > prvek s indexem j+1, pak oba prvky zaměníme. 2. krok 1 se opakuje pro pole délky n, n-1, ....,2

Efektivnější algoritmus Bubble sort při prvním a každém dalším provádění postupu se kontroluje, zda se vůbec vyměnily hodnoty dvou prvků pokud ano – postup se znovu zopakuje pokud ne – čísla jsou již seřazena, není třeba postup opakovat 1 2 3 4 5 6 7 1 3 4 6 7 9 12

Select sort - řazení výběrem maximálního prvku Vzestupné řazení: 1. nalezení prvku s maximální hodnotou 2. záměna maximálního prvku s posledním prvkem pole (pro vzestupné řazení) Algoritmus spočívá v aplikování základních kroků postupně na pole délky n, n-1, n-2,....,2; tato pole vzniknou z původního pole zkráceného o maximální prvky (postupně o 1, 2, 3,……. n-2 prvků) http://www.algoritmy.net/article/4/Selection-sort

1 2 3 4 5 6 7 5 8 4 9 7 2 1 5 8 4 1 7 2 9 5 2 4 1 7 8 9 5 2 4 1 7 8 9 1 2 4 5 7 8 9 1 2 4 5 7 8 9

Vytvořte algoritmus na postup, kterým se projde pole načtených hodnot a nalezne se index prvku s maximální hodnotou v celém poli.

Select Sort cyklus délka prohledávaného pole změněné pole prvků 1 6 základní pole prvků: 10, 5, 9, 3, 1, 4 cyklus délka prohledávaného pole změněné pole prvků 1 6 4, 5, 9, 3, 1, 10 2 5 4, 5, 1, 3, 9, 10 3 4 4, 3, 1, 5, 9, 10 1, 3, 4, 5, 9, 10

algoritmy vyhledávání čísel

Sekvenční vyhledávání Algoritmus spočívá v procházení prvků pole a v jejich porovnávání s hledanou hodnotou, dokud se prvek nenajde, nebo dokud se nedojde na konec pole. http://www.algoritmy.net/article/19/Linearni-vyhledavani

Vyhledávání binárním půlením Algoritmus je aplikovatelný pouze na neklesající posloupnost prvků (pole), případně po modifikaci na nerostoucí posloupnost prvků. Rekurzivně se opakuje porovnání hledaného prvku X s prvkem uprostřed pole a[i] (i=n/2 nebo i=(n+1)/2). Pokud se hodnota obou prvků shoduje pak je prvek nalezen. Pokud X<a[i], algoritmus se aplikuje na polovinu menších prvků, jinak na polovinu větších prvků. http://www.algoritmy.net/article/21/Binarni-vyhledavani

Hledá se číslo 3 1 2 3 4 5 6 7 1 2 3 4 5 9 10 1 2 3 4 5 9 10 1 2 3 4 5 9 10

Hledané číslo nenalezeno. Hledá se číslo 40 1 2 3 4 5 6 7 8 9 10 11 12 1 5 7 13 14 22 23 24 35 49 55 99 1 5 7 13 14 22 23 24 35 49 55 99 1 5 7 13 14 22 23 24 35 49 55 99 Hledané číslo nenalezeno.

Vyhledávání – binárním půlením (příklad) základní pole prvků: 1, 2, 3, 4, 5, 9, 10 hledaný prvek: 3 cyklus prohledávané pole 1 1, 2, 3, 4, 5, 9, 10 2 1, 2, 3 3