Algoritmy a datové struktury I, přednáška prof. RNDr. Lud ka Kučery, DrSc. Poznámky sepsal Robert Husák. Letní semestr 2009/2010
|
|
- Milan Tobiška
- před 6 lety
- Počet zobrazení:
Transkript
1 Algoritmy a datové struktury I, přednáška prof. RNDr. Lud ka Kučery, DrSc. Poznámky sepsal Robert Husák Letní semestr 2009/2010 Většina úloh je dostupná v Algovizi[2], proto v poznámkách uvádím přímo odkazy na jednotlivé scény. Někdy může být scéna nedostupná, ale naopak text v manuálu[3] užitečný k pochopení, proto je u každé scény napsáno i číslo stránky v manuálu. Část I Datové struktury 1 Slovník Objekty z množiny M jsou zde ukládány podle klíče. Operace: 1. Vytvoření škatulky (inicializace): M := 2. insert = vložení objektu do množiny: M := M {v} (v M nic neudělá, nebo ohlásí chybu; někdy musíme ošetřit, aby se nepřidával) 3. delete = vynechání: M := M {v} (v / M může spadnout, nebo nic neudělat) 4. search: v M? 5. min, max - používá se, pokud jsou prvky uspořádané (+ insert setřídění podle velikosti) Reprezentace v poli: delete vynechat + posunout zbytek; insert zkopírovat do nového pole o délce n + 1. Všechny operace - procházení celého pole > trvá dlouho. 2 Binární vyhledávací strom (BST) Jedná se o slovník - implemetuje totiž slovníkové operace otec levý syn pravý syn list - vrchol, co nemá syna pro libovolný vrchol platí: prvky vlevo (tedy prvky levého podstromu) musí být < než vrchol a prvky vpravo 1
2 zleva doprava tvoří rostoucí posloupnost snazší hledání - celý strom procházím od kořene a v každém vrcholu jedu do L nebo P syna přidávání - postupuju jako při hledání, když dojdu až do listu, přidám nový vrchol vynechávání - vyhledám a dále: 1. pokud měl jenom jednoho syna, vynechám ho a syna napojím na jeho otce (děd - vnuk) 2. pokud měl dva syny, pouze z něj odstraníme klíč, potom nalezneme maximum v levém podstromě, jeho klíč přesuneme do prázdného vrcholu a zbylý prázdný vrchol odebereme (měl max. 1 syna) doba prohledávání je úměrná hloubce stromu, o ní platí: průměrná hloubka 1, 5 log 2 n, kde n je počet vrcholů (tedy i pro velká n dostatečně malá) záleží na vhodném zvolení hodnoty kořene (nejlépe medián) a následných vrcholů obecně je však O(n) jako u spojového seznamu (např., když do BST postupně přidáme celou uspořádanou posloupnost) Prostředkem pro vyvažování stromu je rotace hrany - tato úprava zachovává pořadí zleva doprava, ale mění vertikální podobu stromu. Je to vratná operace - stačí zarotovat stejnou hranu znovu. Scéna (Str. 37). Rotace - Doporučuji si rotace v této scéně vyzkoušet. Konec 1. přednášky 2.1 AVL stromy (Podle jmen autorů Adelson-Velského a Landise.) podmínka: výška levého podstromu se od výšky pravého podstromu liší nejvýše o 1 každý vrchol v sobě nese údaj o vyváženosti (tedy údaj, zda je hlubší jeho levý nebo pravý podstrom, případně jestli jsou stejně hluboké), v Algovizi je to reprezentováno vahadýlkem má rozumnou hloubku: po bližším zkoumání zjistíme, že počet vrcholů n potřebný k sestavení AVL stromu hloubky h je F n Fibonacciho čísla rostou exponenciálně, proto naopak h log n lze jej získat rotací z nevyváženého stromu Scéna (Str. 39). Rotace v AVL stromu - Můžete si pomocí rotací zkusit vyrobit AVL strom z nevyváženého stromu. Scéna (Str. 39). Přidávání do AVL stromu - Dělí se na 3 případy. Scéna (Str. 42). Vynechávání v AVL stromu 2
3 2.2 RB stromy (Red-Black) podmínky: kořen je vždy černý otec a syn nemůžou být oba červení jakákoliv cesta z kořene do listu nebo do vrcholu s 1 synem musí obsahovat stejný počet černých vrcholů Délka nejdelší cesty tedy nemůže být větší než dvojnásobek délky cesty nejkratší. Hloubka: Obrázek 1: Hloubka RB-stromu N h/2 > 2 h/2 2 log 2 N h Pravidlo pro rotace: nelze rotovat hranu, kde je otec červený a syn černý, jiné případy rotovat můžeme. Konec 2. přednášky insert: 1. Najdeme, kam ho umístit. Přidáme jako červený (pokud to není kořen), pokud splňuje strom podmínky (tj. otec je černý), jsme hotovi. 2. Jinak napravujeme směrem nahoru: (a) Pokud je strýc červený (nebo neexistuje), začerníme otce a strýce, začerveníme dědečka. (b) V opačném případě: i. Pokud je děda ve stejném směru jako otec: provedeme rotaci hrany otce a dědy. Pak můžeme postup ukončit, všechno jsme totiž napravili. ii. Pokud ne, je předtím ještě potřeba zarotovat hranu s otcem. Scéna (Str. 45). Červeno-černé vkládání - Dělí se na 3 případy. 3
4 delete: 1. Vynechávám vrchol s dvěma syny: vynechám ve vrcholu hodnotu, najdu maximum v levém podstromě, jeho hodnotu přenesu do vynechaného a vynechám ho. 2. Vynechávám vrchol, který má pouze jednoho syna (to musí být červený list a vrchol musí být černý): Přeneseme hodnotu syna do vrcholu a syna vymažeme. 3. Vynechávám červený list: Prostě jej vymažeme (nic se neporuší). 4. Vynechávám černý kořen: Prostě jej vymažeme (nic se neporuší). 5. Vynechávám černý list, kde je otec černý a bratr červený (bratr musí být červený a mít černé syny): Provedeme rotaci hrany otec-bratr. Potom otočený vrchol obarvíme na černo, syny na červeno a tím pádem pouze smažeme červený list. 6. Vynechávám černý list, kde je otec černý a bratr černý a bratr má syna blíže k tomu listu (bratr může mít za syny pouze červené listy): Přepíšeme hodnotu listu hodnotou otce a hodnotu otce hodnotou bratrova syna. Bratrova syna vymažeme. 7. Stejné jako předcházející, ale bratr má syna na opačnou stranu: Vymažeme z listu hodnotu a popřesouváme postupně hodnoty nejbližších vyšších čísel a nakonec vymažeme červený list. 8. Vynechávám černý list, který má červeného otce (bratr je tedy černý) a bratr je list: Prohodím barvu otce a synů (tedy zvednu nahoru ), vrchol můžu vymazat. 9. Vynechávám černý list, který má černého otce - kořen a bratra černý list: Zvednu nahoru a vymažu. 10. Stejné jako předcházející, ale otec není kořen: Odbarvíme ho i bratra otec bude dvojnásobně černý. Červený list vynecháme. Musíme však ošetřit dvojnásobný černý list: Pokud má červeného bratra: Provedu rotaci hrany otec-bratr a černou barvu do otočeného červeného bratra přenesu z jeho synů. 11. Stejné jako předcházející, ale strýc je černý a děda je červený (bratranci musí být černí): Ošetříme dvojn.: zvedneme nahoru do červeného dědy. 12. Stejné jako předcházející, ale i děda je černý: Dvojn.: zvedneme nahoru a dále ošetřujeme dvojn. dle situace. Pokud dojdeme do kořene, můžeme dvojitou černou nahradit za černou. 13. Stejné, ale vzdálenější bratranec je červený: Přesunu černou barvu ze strýce dolů. Provedeme rotaci děda-strýc a barvu zvedneme nahoru. Pokud byl děda červený, použijeme stejný postup a samo se to spraví. 14. Stejné, ale bližší bratranec je červený: Dvojn.: Provedu rotaci hrany červený bratranecstrýc předchozí situace. Platí i pro oba bratrance červené, i pro červeného dědu, i pro kombinaci obojího. Scéna (Str. 48). Červeno-černé vynechávání navzájem odvolávají. - Dělí se na 14 případů, ty se však na sebe Konec 3. přednášky 4
5 3 Hloubka průměrného binárního stromu Viz PDFko ke stažení [4] na stránkách pana profesora Kučery [1]. Konec 4. přednášky Část II Třídící algoritmy 4 Mergesort 5 Heapsort 6 Quicksort Věta 6.1 (Průměrná složitost quicksortu). Průměrná časová složitost quicksortu je Θ(n log n). Důkaz Dolní odhady porovnávacího třídění Pozorování 7.1. Každý deterministický třídící algoritmus lze jednoznačně modelovat binárním rozhodovacím stromem, viz obr. 2. Levá větev vždy odpovídá výsledku a pravá větev (BÚNO vstupy různé). Obrázek 2: Rozhodovací strom pro insertion-sort a n = 3 (označme vstup a, b, c) Pozorování 7.2. Rozhodovací strom modeluje korektní třídící algoritmus musí obsahovat listy se všemi n! možnými pořadími (permutacemi) vstupní posloupnosti. Počet porovnání v nejhorším případě = nejdelší větev od kořene k listu = výška stromu. 5
6 Věta 7.3 (Nejhorší případ). Binární strom s n! listy má výšku Ω(n log n) Důkaz.... (Část lze dokázat přes Stirlingovu formuli.) Poznámka 7.4. Chybí mi zápisky z 5. přednášky: Třídění - časová složitost: mergesort, heapsort, průmerná složitost quicksortu, dolní odhad pro porovnávací třídicí algoritmy (nejhorší prípad) Nejsem si jistý, co všechno z toho bude chtít dokázat, možná bude chtít přímo Analýzu složitosti rekurentních algoritmů, viz zápisky Jana Procházky[10]. Výpisky výše jsou z prezentace pana docenta Čepka[9].) Konec 5. přednášky Věta 7.5 (Průměrný případ). Je li A porovnávací algoritmus, pak průměr přes všechny permutace π množiny {1,..., n} z počtu porovnání, které A potřebuje pro setřídění posloupnosti π(1),..., π(n) je alespoň log 2 (n!). Důkaz. Viz PDFko ke stažení [5] na stránkách pana profesora Kučery [1]. 8 Radix sort Chybí znění algoritmu. Konec 6. přednášky Část III Hashování Chybí 7. přednáška. Konec 7. přednášky Definice 8.1 (Binomické rozložení). Všechny možné podmnožiny úspěšných pokusů ze všech pokusů: ( ) N l p l (1 p) N l Obrázek 3: Princip hashování 6
7 Důkaz (Dokončení důkazu tvrzení o průměrném případě v univerzálním hashování). (Bude ho prý chtít pouze po těch, kteří chtějí jedničku) Celý důkaz je zapsán v PDFku[6] na stránkách[1]. Obrázek 4: B l = M N l=k ( ) N p l (1 p) N l l p - poměr velikosti U a částí U, která se zhashuje na stejný klíč. N M p 1 M Tvrdíme, že konstanta C taková, že když k = C log N, pak je pravděpodobnost malá. α l = B l+1 B l = N l l + 1 p 1 1 p = N l p l=np = N Np l p Np + 1 p 1 p = (1 p) p + 1/N p 1 p Pro N >> p je α l = p p = 1. V rozmezí l = Np 1 až Np α l projde jedničkou. Největší pravděpodobnost, že z N pokusů s pravděpodobností P uspěji l-krát, je pro l = N p. Pro M = 2Np je α l 1 2, čili B l 1 2 B l+1. k N p N B l B k B k B k B k l=k l = 2Np + j B l 1 2 B l B l j B np 1 2 j = 1 N C l = 2Np + C log 2 N B l 1 2 C log 2 N = 1 N C 7
8 Část IV Grafové algoritmy 9 Nalezení minimální kostry Kroky si rozdělíme na sudé a liché, v každém lichém kroku přidáváme hranu (říkáme, že ji z původních hran přidáváme do tzv. výpočetního lesa): 1. V každém sudém kroku si vyberu komponentu a rozšířím okolí okolo všech jejích bodů. 2. Nejbližší bod s ní v lichém kroku spojím. Jednotlivé algoritmy se liší pouze pravidly, podle kterých se v sudém kroku vybírá komponenta. Scéna (Str. 158). Obecný algoritmus Pro zjišt ování vzdálenosti se používají různé metriky: 1. Euklidovská: (x 1 x 2 ) + (y 1 y 2 ) 2. L1: x 1 x 2 + y 1 y 2 3. Lmax: max x 1 x 2, y 1 y 2 Scéna (Str. 160). Metrika L1 a Lmax Algoritmus 9.1 (Jarník - Prim). Vycházíme z jedné komponenty a tu rozšiřujeme. Výhodná datová struktura pro uchovávání hran vedoucích z této komponenty je například halda. Scéna (Str. 161). Jarníkův - Primův algoritmus Algoritmus 9.2 (Kruskal). V sudém kroku rozšiřuji okolí okolo všech komponent, v lichém kroku spojím dvě nejlevnější komponenty (tedy ty, jejichž okolí se protnou jako první). Aby bylo patrné, že se jedná o implementaci obecného schématu, můžeme algoritmus pojmout tak, že právě jednu z těchto dvou komponent v sudém kroku vybereme a proto ji potom v lichém kroku musíme spojit právě s tou druhou. Jiný popis: 1. Setřídíme si povolené hrany podle velikosti 2. Postupně přidáváme hrany. Kdyby měla spojovat již propojené komponenty, vyřadíme ji. 3. Když je vše propojené, zbylé možné hrany se zahodí. Scéna (Str. 161). Kruskalův algoritmus jak jej počítat. - V následující scéně je ukázán ještě druhý způsob, Konec 8. přednášky Důkaz (Správnost obecného schématu).... Scéna (Str. 163). Správnost - Celý důkaz je vysvětlen v knize a ted už funguje i v Algovizi. 8
9 10 Faktorová množina Slouží k rozdělení pevné množiny M do navzájem disjunktních tříd. Operace: inicializace: Nastaví ji tak, že popisuje rozdělení M do jednoprvkových tříd. určení třídy: Jednoznačně určit, v jaké třídě se x M nachází. sloučení tříd: Dvě dané různé třídy rozkladu se sloučí v jednu. Lze jej provést pouze (n 1)-krát, kde n je počet vrcholů Rozklad obarvením Každému prvku je přiřazeno číslo (barva), které určuje, do které třídy patří. Při slučování tříd se vrcholy z jedné třídy přebarví na barvu vrcholů druhé třídy. Vylepšení: přebarvovat vždy třídu menší velikosti. Potom provedeme celkem maximálně 0, 5n log 2 n přebarvení. Konec 9. přednášky 10.2 Rozklad popsaný stromem Spojujeme body do komponent - tvoříme strom. Tento strom je jednosměrný a pointery v něm ukazují zespoda nahoru, tedy sbíhají se k reprezentantovi. Zjišt ování, zda jsou dva dané body ve stejné komponentě: od obou bodů dojdeme k reprezentantovi a ty porovnáme. V základní podobě nás tato operace může stát v průměru log 2 n operací (narozdíl od sloučení, které probíhá v čase konstantním). vylepšení: při procházení k reprezentantovi přepojíme všechny průchozí body rovnou k němu časová složitost: O(n log n) Kde log n je funkce inverzní k věžové funkci. 11 Prohledávání grafu Rozdělíme si vrcholy na: nedosažené dosažené probrané a hrany na: nepoužité použité 9
10 procházíme vrcholy s přilehlými hranami, vrcholy, které mají použité všechny hrany, označíme jako probrané. Dosažené vrcholy jsou uloženy: 1. v FIFO frontě (tj. fronta) prohledávání do šířky - procházíme graf po vrstvách 2. v LIFO frontě (tj. zásobníku) prohledávání do hloubky - prohledáváme graf jako bludiště 3. v libovolné jiné datové struktuře prohledáváme graf libovolně 12 Zjišt ování stupně spojitosti grafu Obrázek 5: 2-souvislý graf Sestavíme si strom prohlevávání, zbylé hrany jsou příčky - při prohledávání do hloubky nám vyjdou příčky tak, že nikdy nespojují body v různých větvích. Tedy libovolný vrchol je artikulace, pokud z něj nevede žádná příčka směrem ke kořenu. Obrázek 6: Strom prohledávání Očíslujeme si vrcholy podle pořadí, v jakém jsme je prohledávali. Navíc zavedeme fci L(w) := min{pořadové číslo w, pořadové číslo z (w, z) je hrana} a při prvním průchodu do ní vložíme první odhad: pořadové číslo. Obrázek 7: Strom prohledávání s očíslováním vrcholů 10
11 Při návratu do vrcholu w z podstromu tuto hodnotu ještě doladíme. Z hodnot očíslování a fce L lze zjistit, které body jsou artikulace. Scéna (Str. 129). Hledání artikulací docela podrobně. - V appletech sice nefunguje, ale v knížce je zapsána Scéna (Str. 131). Výpočet LOW PT - To samé platí i pro tuto. Konec 10. přednášky 13 Hledání nejkratší cesty Obrázek 8: Orientovaný graf Poznámka Někdy je potřeba hledat nejdelší cestu. V takovém případě přiřadíme ohodnocení hran opačné znaménko, než mají a hledáme cestu nejkratší. Problémy: Obrázek 9: Problém záporných hodnot v grafu Může se stát, že nejkratší cesta neexistuje (viz 9). Pak musíme např. zakázat opakování v cyklech apod. Problém hledání nejkratší cesty v obecném záporně ohodnoceném grafu je NP-úplný. Proto se často zadání omezuje: 1. Graf pouze acyklický 2. Neexistují záporně ohodnocené hrany (pro takové grafy známe velmi efektivní algoritmy) 3. Neexistuje záporný cyklus 11
12 Definice Topologicky uspořádaný graf je acyklický graf uspořádaný tak, že všechny hrany vedou zleva doprava. Obrázek 10: Topologické uspořádání grafu Obrázek 11: Nekonečný acyklický graf Algoritmus 13.3 (Topologické uspořádání grafu). Graf musí být konečný (viz obr. 11). Postupným obarvováním vrcholů na zeleno dle algoritmu níže získáme jejich topologické uspořádání - viz obr : vrcholy v se obarví na červeno 2: vrcholy v se položí D(v) := 0, dále se položí Q := 3: hrany (u, v) grafu se D(v) zvýší o 1 4: for all vrchol v, pro který platí D(v) = 0 do 5: vložit v do Q 6: end for 7: while Q do 8: vyber libovolný v Q (tedy z Q jej odstraň) 9: přebarvi v na zeleno 10: for all hrana (v, w) do 11: D(w) 12: if D(w) = 0 then 13: vlož w do Q 14: end if 15: end for 16: end while Scéna (Str. 136). Rychlé určení topologického uspořádání - V Algovizi zatím není implementována. Algoritmus 13.4 (Algoritmus kritické cesty). Topologicky si uspořádáme graf (viz předchozí algoritmus). Nyní můžeme zjistit ceny nejlacinějších cest z bodu v 0 do všech ostatních vrcholů. Využijeme při tom dynamické programování, viz scéna níže. 12
13 Scéna (Str. 137). Algoritmus kritické cesty však algoritmus popsán. - Také zatím není implementována, v knížce je Obrázek 12: Graf s orientovaným cyklem Algoritmus 13.5 (Dijkstrův). Pouze pro nezáporně ohodnocené hrany. Viz [8]. 1: Každému bodu přiřadíme E(v) ( estimation, zpočátku nastavíme + ), určíme množinu M pro dosažené body. 2: M = {v 0 }, E(v 0 ) = 0 3: while M do 4: v = prvek M s nejmenším E 5: for (v, w) do 6: if E(v) == + then 7: {E(w) = E(v) + l(v, w); P (w) = v} 8: else if E(w) > E(v) + l(v, w) then 9: {E(w) = E(v) + l(v, w); P (w) = v} 10: end if 11: end for 12: vyhod v z m 13: end while Scéna (Str. 140). Dijkstrův algoritmus Konec 11. přednášky Chybí 12. a 13. přednáška. Reference [1] Domovská stránka pana profesora Kučery: Stránka přednášky: [2] Algovize je volně dostupná sada appletů od pana profesora Kučery: Novější verze (něco je zde nové, avšak některé věci zde nefungují) je dostupná na: [3] Kniha Luděk Kučera: Algovize, aneb procházka krajinou algoritmů je manuál k appletům Algovize. Lze si ji půjčit v knihovně MFF, je také ke stažení na: 13
14 [4] Hloubka průměrného binárního stromu (ze stránek výše): [5] Dolní odhad porovnávacího třídění (průměrý případ, ze stránek výše): [6] Logaritmický odhad pro obecné hashování (ze stránek výše): [7] Universální hashování (ze stránek výše): [8] Dijkstrův algoritmus (ze stránek výše): [9] Prezentace pana docenta Čepka: [10] Poznámky Jana Procházky: 14
Programování 3. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015
Programování 3. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Umíme z minulé hodiny Implementace zásobníku a fronty pomocí
Algoritmy na ohodnoceném grafu
Algoritmy na ohodnoceném grafu Dvě základní optimalizační úlohy: Jak najít nejkratší cestu mezi dvěma vrcholy? Dijkstrův algoritmus s t Jak najít minimální kostru grafu? Jarníkův a Kruskalův algoritmus
bfs, dfs, fronta, zásobník, prioritní fronta, halda
bfs, dfs, fronta, zásobník, prioritní fronta, halda Petr Ryšavý 20. září 2016 Katedra počítačů, FEL, ČVUT prohledávání grafů Proč prohledávání grafů Zkontrolovat, zda je sít spojitá. Hledání nejkratší
bfs, dfs, fronta, zásobník, prioritní fronta, halda
bfs, dfs, fronta, zásobník, prioritní fronta, halda Petr Ryšavý 19. září 2017 Katedra počítačů, FEL, ČVUT prohledávání grafů Proč prohledávání grafů Zkontrolovat, zda je sít spojitá. Hledání nejkratší
Základní datové struktury III: Stromy, haldy
Základní datové struktury III: Stromy, haldy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní
Stromy, haldy, prioritní fronty
Stromy, haldy, prioritní fronty prof. Ing. Pavel Tvrdík CSc. Katedra počítačů FEL České vysoké učení technické DSA, ZS 2008/9, Přednáška 6 http://service.felk.cvut.cz/courses/x36dsa/ prof. Pavel Tvrdík
TGH05 - aplikace DFS, průchod do šířky
TGH05 - aplikace DFS, průchod do šířky Jan Březina Technical University of Liberec 28. března 2017 Grafová formulace CPM (critical path method) Orientovaný acyklický graf (DAG) je orientovaný graf neobsahující
ALGORITMY A DATOVÉ STRUKTURY
Název tématického celku: Cíl: ALGORITMY A DATOVÉ STRUKTURY Metodický list č. 1 Časová složitost algoritmů Základním cílem tohoto tematického celku je vysvětlení potřebných pojmů a definic nutných k popisu
TGH05 - aplikace DFS, průchod do šířky
TGH05 - aplikace DFS, průchod do šířky Jan Březina Technical University of Liberec 31. března 2015 Grafová formulace CPM (critical path method) Orientovaný acyklický graf (DAG) je orientovaný graf neobsahující
Amortizovaná složitost. Prioritní fronty, haldy (binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost
Amortizovaná složitost. Prioritní fronty, haldy binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost 1. Asymptotické odhady Asymptotická složitost je deklarována na základě
STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta
STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach vlož do fronty kořen opakuj, dokud není fronta prázdná 1. vyber uzel z fronty a zpracuj jej 2. vlož do fronty levého následníka
Vyvažování a rotace v BVS, všude se předpokládá AVL strom
Vyvažování a rotace v BVS, všude se předpokládá AVL strom 1. Jednoduchá levá rotace v uzlu u má operační složitost a) závislou na výšce levého podstromu uzlu u b) mezi O(1) a Θ(n) c) závislou na hloubce
07 Základní pojmy teorie grafů
07 Základní pojmy teorie grafů (definice grafu, vlastnosti grafu, charakteristiky uzlů, ohodnocené grafy) Definice grafu množina objektů, mezi kterými existují určité vazby spojující tyto objekty. Uspořádaná
Hledáme efektivní řešení úloh na grafu
Hledáme efektivní řešení úloh na grafu Mějme dán graf následující úlohy: G = ( V, E), chceme algoritmicky vyřešit Je daný vrchol t dosažitelný z vrcholu s? Pokud ano, jaká nejkratší cesta tyto vrcholy
TGH07 - Chytré stromové datové struktury
TGH07 - Chytré stromové datové struktury Jan Březina Technical University of Liberec 1. dubna 2014 Prioritní fronta Datová struktura s operacemi: Odeber Minum (AccessMin, DeleteMin) - vrat prvek s minimálním
Stromy. Jan Hnilica Počítačové modelování 14
Stromy Jan Hnilica Počítačové modelování 14 1 Základní pojmy strom = dynamická datová struktura, složená z vrcholů (uzlů, prvků) propojených hranami hrany chápeme jako orientované, tzn. vedou z uzlu A
Grafové algoritmy. Programovací techniky
Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být
AVL stromy. pro každý uzel u stromu platí, že rozdíl mezi výškou jeho levého a pravého podstromu je nejvýše 1 stromy jsou samovyvažující
Stromy 2 AVL AVL stromy jména tvůrců stromů: dva Rusové Adelson-Velskii, Landis vyvážené binární stromy pro každý uzel u stromu platí, že rozdíl mezi výškou jeho levého a pravého podstromu je nejvýše 1
Grafové algoritmy. Programovací techniky
Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být
1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) 759 10 b) 2578 10
Úlohy- 2.cvičení 1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) 759 10 b) 2578 10 2. Převeďte dané desetinné číslo do dvojkové soustavy (DEC -> BIN): a) 0,8125 10 b) 0,35 10
Prioritní fronta, halda
Prioritní fronta, halda Priority queue, heap Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2018 1 / 26 Prioritní fronta Halda Heap sort 2 / 26 Prioritní fronta (priority queue) Podporuje
Algoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Grafové úlohy Daniela Szturcová Tento
Algoritmy a datové struktury
Algoritmy a datové struktury Stromy 1 / 32 Obsah přednášky Pole a seznamy Stromy Procházení stromů Binární stromy Procházení BS Binární vyhledávací stromy 2 / 32 Pole Hledání v poli metodou půlení intervalu
ADT STROM Lukáš Foldýna
ADT STROM Lukáš Foldýna 26. 05. 2006 Stromy mají široké uplatnění jako datové struktury pro různé algoritmy. Jsou to matematické abstrakce množin, kterou v běžném životě používáme velice často. Příkladem
Použití dalších heuristik
Použití dalších heuristik zkracování cesty při FIND-SET UNION podle hodností Datové struktury... p[x] - předchůdce uzlu x MAKE-SET(x) p[x] := x hod[x] := 0 hod[x] - hodnost (aprox. výšky) UNION(x,y) LINK(FIND-SET(x),
TGH07 - Chytré stromové datové struktury
TGH07 - Chytré stromové datové struktury Jan Březina Technical University of Liberec 5. dubna 2017 Prioritní fronta Datová struktura s operacemi: Odeber Minum (AccessMin, DeleteMin) - vrat prvek s minimálním
NEJKRATŠÍ CESTY I. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze
NEJKRATŠÍ CESTY I Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2010/2011, Lekce 7 Evropský sociální fond Praha & EU: Investujeme do vaší
Dijkstrův algoritmus
Dijkstrův algoritmus Hledání nejkratší cesty v nezáporně hranově ohodnoceném grafu Necht je dán orientovaný graf G = (V, H) a funkce, která každé hraně h = (u, v) H přiřadí nezáporné reálné číslo označované
Vzdálenost uzlů v neorientovaném grafu
Vzdálenosti a grafy Vzdálenost uzlů v neorientovaném grafu Je dán neorientovaný neohodnocený graf G = (V,E,I) vzdálenost uzlů u a v v neorientovaném souvislém grafu G je délka nejkratší cesty spojující
Prohledávání do šířky = algoritmus vlny
Prohledávání do šířky = algoritmus vlny - souběžně zkoušet všechny možné varianty pokračování výpočtu, dokud nenajdeme řešení úlohy průchod stromem všech možných cest výpočtu do šířky, po vrstvách (v každé
DobSort. Úvod do programování. DobSort Implementace 1/3. DobSort Implementace 2/3. DobSort - Příklad. DobSort Implementace 3/3
DobSort Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 V roce 1980 navrhl Dobosiewicz variantu (tzv. DobSort),
Výroková a predikátová logika - III
Výroková a predikátová logika - III Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - III ZS 2017/2018 1 / 16 2-SAT 2-SAT Výrok je v k-cnf, je-li v CNF a
Stromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy
Stromy úvod Stromy Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy Neorientovaný strom Orientovaný strom Kořenový orientovaný
Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest
Obsah prezentace Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest 1 Základní pojmy Vrchol grafu: {množina V} Je to styčná vazba v grafu, nazývá se též uzlem, prvkem
NPRG030 Programování I, 2018/19 1 / :03:07
NPRG030 Programování I, 2018/19 1 / 20 3. 12. 2018 09:03:07 Vnitřní třídění Zadání: Uspořádejte pole délky N podle hodnot prvků Měřítko efektivity: * počet porovnání * počet přesunů NPRG030 Programování
Dynamické datové struktury III.
Dynamické datové struktury III. Halda. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované
Algoritmus pro hledání nejkratší cesty orientovaným grafem
1.1 Úvod Algoritmus pro hledání nejkratší cesty orientovaným grafem Naprogramoval jsem v Matlabu funkci, která dokáže určit nejkratší cestu v orientovaném grafu mezi libovolnými dvěma vrcholy. Nastudoval
Maturitní téma: Programovací jazyk JAVA
Maturitní téma: Programovací jazyk JAVA Insert Sort (třídění vkládáním) 1. Jako setříděnou část označíme první prvek pole. Jako nesetříděnou část označíme zbytek pole. 2. Vezmeme první (libovolný) prvek
ADT prioritní fronta. Haldy. Další operace nad haldou. Binární halda. Binomické stromy. Časová složitost jednotlivých operací.
ADT prioritní fronta Haldy množina M operace Přidej(M,x) přidá prvek x do množiny M Odeber(M) odeber z množiny M prvek, který je na řadě Zásobník (LIFO), Fronta (FIFO) Prioritní fronta: Přidej(M,x) přidá
Anotace. Spojové seznamy, haldy. AVL-stromy, A-B stromy. Martin Pergel,
Anotace Spojové seznamy, fronta a zásobník. Vyvážené binární stromy, AVL-stromy, červeno-černé stromy, A-B stromy. Hashování, haldy. Typologie spojových seznamů jednosměrný a obousměrný prvek ukazuje jen
Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz
Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz (2 + 5) * (13-4) * + - 2 5 13 4 - listy stromu obsahují operandy (čísla) - vnitřní uzly obsahují operátory (znaménka)
Matematika III 10. přednáška Stromy a kostry
Matematika III 10. přednáška Stromy a kostry Michal Bulant Masarykova univerzita Fakulta informatiky 20. 11. 2007 Obsah přednášky 1 Izomorfismy stromů 2 Kostra grafu 3 Minimální kostra Doporučené zdroje
Radek Mařík
2012-03-20 Radek Mařík 1. Pravá rotace v uzlu U a) v podstromu s kořenem U přemístí pravého syna U.R uzlu U do kořene. Přitom se uzel U stane levým synem uzlu U.R a levý podstrom uzlu U.R se stane pravým
Výroková a predikátová logika - II
Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2015/2016 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2015/2016 1 / 18 Základní syntax Jazyk Výroková logika je logikou
Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.
Grafy doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB TUO) Grafy 104 / 309 Osnova přednášky Grafy
Diskrétní matematika. DiM /01, zimní semestr 2018/2019
Diskrétní matematika Petr Kovář petr.kovar@vsb.cz Vysoká škola báňská Technická univerzita Ostrava DiM 470-2301/01, zimní semestr 2018/2019 O tomto souboru Tento soubor je zamýšlen především jako pomůcka
Red Black strom (Red Black Tree) Úvod do programování. Rotace. Red Black strom. Rotace. Rotace
Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Red Black strom je binární strom s jedním dvouhodnotovým příznakem
bfs, dfs, fronta, zásobník
bfs, dfs, fronta, zásobník Petr Ryšavý 25. září 2018 Katedra počítačů, FEL, ČVUT prohledávání grafů Proč prohledávání grafů Zkontrolovat, zda je sít spojitá. Hledání nejkratší cesty, plánování cest. Prohledávání
Cílem kapitoly je seznámit studenta se seznamem a stromem. Jejich konstrukci, užití a základní vlastnosti.
Seznamy a stromy Cílem kapitoly je seznámit studenta se seznamem a stromem. Jejich konstrukci, užití a základní vlastnosti. Klíčové pojmy: Seznam, spojový seznam, lineární seznam, strom, list, uzel. Úvod
PQ-stromy a rozpoznávání intervalových grafů v lineárním čase
-stromy a rozpoznávání intervalových grafů v lineárním čase ermutace s předepsanými intervaly Označme [n] množinu {1, 2,..., n}. Mějme permutaci π = π 1, π 2,..., π n množiny [n]. Řekneme, že množina S
Binární vyhledávací stromy pokročilé partie
Binární vyhledávací stromy pokročilé partie KMI/ALS lekce Jan Konečný 30.9.204 Literatura Cormen Thomas H., Introduction to Algorithms, 2nd edition MIT Press, 200. ISBN 0-262-5396-8 6, 3, A Knuth Donald
Obecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012
Obecná informatika Přednášející Putovních přednášek Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Podzim 2012 Přednášející Putovních přednášek (MFF UK) Obecná informatika Podzim 2012 1 / 18
Select sort: krok 1: krok 2: krok 3: atd. celkem porovnání. výběr nejmenšího klíče z n prvků vyžaduje 1 porovnání
Select sort: krok 1: výběr klíče z n prvků vyžaduje 1 porovnání krok 2: výběr klíče z 1 prvků vyžaduje 2 porovnání krok 3: výběr klíče z 2 prvků vyžaduje 3 porovnání atd. celkem porovnání Zlepšení = použít
Řešení: PŘENESVĚŽ (N, A, B, C) = přenes N disků z A na B pomocí C
Hanojské věže - 3 kolíky A, B, C - na A je N disků různé velikosti, seřazené od největšího (dole) k nejmenšímu (nahoře) - kolíky B a C jsou prázdné - úkol: přenést všechny disky z A na B, mohou se odkládat
Náplň. v.0.03 16.02.2014. - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění
Náplň v.0.03 16.02.2014 - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění Spojení dvou samostatně setříděných polí void Spoj(double apole1[], int adelka1, double
10 Přednáška ze
10 Přednáška ze 17. 12. 2003 Věta: G = (V, E) lze nakreslit jedním uzavřeným tahem G je souvislý a má všechny stupně sudé. Důkaz G je souvislý. Necht v je libovolný vrchol v G. A mějme uzavřený eurelovský
Modely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT
PEF ČZU Modely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT Okruhy SZB č. 5 Zdroje: Demel, J., Operační výzkum Jablonský J., Operační výzkum Šubrt, T., Langrová, P., Projektové řízení I. a různá internetová
Algoritmy výpočetní geometrie
Algoritmy výpočetní geometrie prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA)
Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní. stromový rozklad. Poznamenejme, že je-li k součástí vstupu, pak rozhodnout
Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní graf má stromovou šířku nejvýše k, a je-li tomu tak, také vrátí příslušný stromový rozklad. Poznamenejme, že je-li k součástí vstupu,
Úvod do teorie grafů
Úvod do teorie grafů Neorientovaný graf G = (V,E,I) V množina uzlů (vrcholů) - vertices E množina hran - edges I incidence incidence je zobrazení, buď: funkce: I: E V x V relace: I E V V incidence přiřadí
Binární Vyhledávací Stromy, u kterých je. složitost operací v nejhorším. rovná O(log n)
Stromy Binární Vyhledávací Stromy, u kterých je č asová složitost operací v nejhorším případě rovná O(log n) Vlastnosti Red-Black Stromů Vlastnosti Red-Black stromů Každý uzel stromu je obarven červenou
TGH05 - Problém za milion dolarů.
TGH05 - Problém za milion dolarů. Jan Březina Technical University of Liberec 20. března 2012 Časová složitost algoritmu Závislost doby běhu programu T na velikosti vstupních dat n. O(n) notace, standardní
Graf. Uzly Lokality, servery Osoby fyzické i právní Informatické objekty... atd. Hrany Cesty, propojení Vztahy Informatické závislosti... atd.
Graf 2 0 3 1 4 5 Uzly Lokality, servery Osoby fyzické i právní Informatické objekty... atd. Hrany Cesty, propojení Vztahy Informatické závislosti... atd. Běžné reprezentace grafu Uzly = indexy Stupně uzlů
Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce)
13. Metody vyhledávání. Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce). Asociativní vyhledávání (sekvenční, binárním půlením, interpolační, binární vyhledávací
Barevnost grafů MFF UK
Barevnost grafů Z. Dvořák MFF UK Plán vztah mezi barevností a maximálním stupněm (Brooksova věta) hranová barevnost (Vizingova věta) příště: vztah mezi barevností a klikovostí, perfektní grafy Barevnost
Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A
Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A Každá úloha je hodnocena maximálně 25 body. Všechny své odpovědi zdůvodněte! 1. Postavte na stůl do řady vedle
6. Tahy / Kostry / Nejkratší cesty
6. Tahy / Kostry / Nejkratší cesty BI-EP2 Efektivní programování 2 LS 2017/2018 Ing. Martin Kačer, Ph.D. 2011-18 Martin Kačer Katedra teoretické informatiky Fakulta informačních technologií České vysoké
Dynamické datové struktury IV.
Dynamické datové struktury IV. Prioritní fronta. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra
bin arn ı vyhled av an ı a bst Karel Hor ak, Petr Ryˇsav y 23. bˇrezna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT
binární vyhledávání a bst Karel Horák, Petr Ryšavý 23. března 2016 Katedra počítačů, FEL, ČVUT Příklad 1 Naimplementujte binární vyhledávání. Upravte metodu BinarySearch::binarySearch. 1 Příklad 2 Mysĺım
Výroková a predikátová logika - II
Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2013/2014 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2013/2014 1 / 20 Základní syntax Jazyk Výroková logika je logikou
Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
Dynamické programování Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Rozděl a panuj (divide-and-conquer) Rozděl (Divide): Rozděl problém na několik podproblémů tak, aby tyto podproblémy odpovídaly původnímu
HEURISTICKÉ ALGORITMY PRO ŘEŠENÍ ÚLOH OBCHODNÍHO CESTUJÍCÍHO
HEURISTICKÉ ALGORITMY PRO ŘEŠENÍ ÚLOH OBCHODNÍHO CESTUJÍCÍHO Heuristické algoritmy jsou speciálními algoritmy, které byly vyvinuty pro obtížné úlohy, jejichž řešení je obtížné získat v rozumném čase. Mezi
TGH08 - Optimální kostry
TGH08 - Optimální kostry Jan Březina Technical University of Liberec 14. dubna 2015 Problém profesora Borůvky řešil elektrifikaci Moravy Jak propojit N obcí vedením s minimální celkovou délkou. Vedení
Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,
[161014-1204 ] 11 2.1.35 Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i, kde i = 0, 1,..., takto: p 0 q právě tehdy, když bud p, q F nebo p, q F. Dokud i+1 i konstruujeme p
5 Orientované grafy, Toky v sítích
Petr Hliněný, FI MU Brno, 205 / 9 FI: IB000: Toky v sítích 5 Orientované grafy, Toky v sítích Nyní se budeme zabývat typem sít ových úloh, ve kterých není podstatná délka hran a spojení, nýbž jejich propustnost
Stromové rozklady. Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom,
Stromové rozklady Zdeněk Dvořák 25. října 2017 Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom, β je funkce přiřazující každému vrcholu T podmnožinu vrcholů v G, pro každé
Základy informatiky. 07 Teorie grafů. Kačmařík/Szturcová/Děrgel/Rapant
Základy informatiky 07 Teorie grafů Kačmařík/Szturcová/Děrgel/Rapant Obsah přednášky barvení mapy teorie grafů definice uzly a hrany typy grafů cesty, cykly, souvislost grafů Barvení mapy Kolik barev je
2 Datové struktury. Pole Seznam Zásobník Fronty FIFO Haldy a prioritní fronty Stromy Hash tabulky Slovníky
Pole Seznam Zásobník Fronty FIFO Haldy a prioritní fronty Stromy Hash tabulky Slovníky 25 Pole Datová struktura kolekce elementů (hodnot či proměnných), identifikovaných jedním nebo více indexy, ze kterých
Výroková a predikátová logika - II
Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2017/2018 1 / 17 Předběžnosti Základní pojmy n-ární relace a funkce
Binární vyhledávací stromy
Binární vyhledávací stromy Definice: Binární vyhledávací strom (po domácku BVS) je buďto prázdná množina nebo kořen obsahující jednu hodnotu a mající dva podstromy (levý a pravý), což jsou opět BVS, ovšem
Rekurzivní algoritmy
Rekurzivní algoritmy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA) ZS
Kostry. 9. týden. Grafy. Marie Demlová (úpravy Matěj Dostál) 16. dubna 2019
Grafy 16. dubna 2019 Tvrzení. Je dán graf G, pak následující je ekvivalentní. 1 G je strom. 2 Graf G nemá kružnice a přidáme-li ke grafu libovolnou hranu, uzavřeme přesně jednu kružnici. 3 Graf G je souvislý
4 Stromy a les. Definice a základní vlastnosti stromů. Kostry grafů a jejich počet.
4 Stromy a les Jedním ze základních, a patrně nejjednodušším, typem grafů jsou takzvané stromy. Jedná se o souvislé grafy bez kružnic. Přes svou (zdánlivou) jednoduchost mají stromy bohatou strukturu a
Datové struktury 2: Rozptylovací tabulky
Datové struktury 2: Rozptylovací tabulky prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy
TGH06 - Hledání nejkratší cesty
TGH06 - Hledání nejkratší cesty Jan Březina Technical University of Liberec 26. března 2013 Motivační problémy Silniční sít reprezentovaná grafem. Najdi nejkratší/nejrychlejší cestu z místa A do místa
Pokročilé haldy. prof. Ing. Pavel Tvrdík CSc. Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010
Pokročilé haldy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (I-EFA) ZS 2010/11,
přirozený algoritmus seřadí prvky 1,3,2,8,9,7 a prvky 4,5,6 nechává Metody řazení se dělí:
Metody řazení ve vnitřní a vnější paměti. Algoritmy řazení výběrem, vkládáním a zaměňováním. Heapsort, Shell-sort, Radix-sort, Quicksort. Řazení sekvenčních souborů. Řazení souborů s přímým přístupem.
Vyhledávací stromy. Slouží jako pomůcka pro organizaci dat umožňující efektivní vyhledávání.
Vyhledávací stromy Slouží jako pomůcka pro organizaci dat umožňující efektivní vyhledávání. Vytvářejí se vždy nad již existující datovou strukturou (zpravidla tabulkou). Vyhledávací stromy můžeme rozdělit
opakování reprezentace grafů, dijkstra, bellman-ford, johnson
opakování reprezentace grafů, dijkstra, bellman-ford, johnson Petr Ryšavý 19. září 2016 Katedra počítačů, FEL, ČVUT opakování reprezentace grafů Graf Definice (Graf) Graf G je uspořádaná dvojice G = (V,
Union-Find problém. Kapitola 1
Kapitola 1 Union-Find problém Motivace: Po světě se toulá spousta agentů. Často se stává, že jeden agent má spoustu jmen/přezdívek, které používá například při rezervaci hotelu, restaurace, na návštěvě
Jan Březina. Technical University of Liberec. 21. dubna 2015
TGH11 - Maximální párování a související problémy Jan Březina Technical University of Liberec 21. dubna 2015 Bipartitní grafy Bipartitní graf - je obarvitelný dvěma barvami. Tj. V lze rozělit na disjunktní
Jan Březina. Technical University of Liberec. 30. dubna 2013
TGH11 - Maximální párování a související problémy Jan Březina Technical University of Liberec 30. dubna 2013 Bipartitní grafy Bipartitní graf - je obarvitelný dvěma barvami. Tj. V lze rozělit na disjunktní
TGH06 - Hledání nejkratší cesty
TGH06 - Hledání nejkratší cesty Jan Březina Technical University of Liberec 31. března 2015 Motivační problémy Silniční sít reprezentovaná grafem. Ohodnocené hrany - délky silnic. Najdi nejkratší/nejrychlejší
Binární vyhledávací strom pomocí směrníků Miroslav Hostaša L06620
Binární vyhledávací strom pomocí směrníků Miroslav Hostaša L06620 1. Vymezení pojmů Strom: Strom je takové uspořádání prvků - vrcholů, ve kterém lze rozeznat předchůdce - rodiče a následovníky - syny.
vyhledávací stromové struktury
vyhledávací algoritmy Brute Force Binary Search Interpolation Search indexové soubory Dense index, Sparse index transformační funkce Perfect Hash, Close Hash Table, Open Hash Table vyhledávací stromové
IB111 Úvod do programování skrze Python
Vyhledávání, řazení, složitost IB111 Úvod do programování skrze Python 2012 Otrávené studny 8 studen, jedna z nich je otrávená laboratorní rozbor dokáže rozpoznat přítomnost jedu ve vodě je drahý (je časově
Základy informatiky. Teorie grafů. Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová
Základy informatiky Teorie grafů Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová Obsah přednášky Barvení mapy Teorie grafů Definice Uzly a hrany Typy grafů Cesty, cykly, souvislost grafů Barvení mapy
OZD. Organizace a zpracování dat. učební text
OZD Organizace a zpracování dat učební tet Datové typy Datové typy Dělení elementární strukturované = datové struktury základní (statické) základní struktury programovacího jazyka vyšší (dynamické) Datové
Algoritmizace řazení Bubble Sort
Algoritmizace řazení Bubble Sort Cílem této kapitoly je seznámit studenta s třídícím algoritmem Bubble Sort, popíšeme zde tuto metodu a porovnáme s jinými algoritmy. Klíčové pojmy: Třídění, Bubble Sort,
Minimální kostry. Teorie. Štěpán Šimsa
Minimální kostry Štěpán Šimsa Abstrakt. Cílem příspěvku je seznámit s tématem minimálních koster, konkrétně s teoretickými základy, algoritmy a jejich analýzou. Problém.(Minimální kostra) Je zadaný graf