Binární Vyhledávací Stromy, u kterých je. složitost operací v nejhorším. rovná O(log n)
|
|
- Pavlína Beranová
- před 6 lety
- Počet zobrazení:
Transkript
1 Stromy Binární Vyhledávací Stromy, u kterých je č asová složitost operací v nejhorším případě rovná O(log n)
2 Vlastnosti Red-Black Stromů Vlastnosti Red-Black stromů Každý uzel stromu je obarven červenou nebo černou barvou. Kořen stromu je obarven černě. Listy (nil) jsou černé. Červený uzel má pouze černé syny. Na kterékoliv cestě z kořene do listu leží stejný počet černých uzlů Černá výška (black-height bh(x) ) uzlu x je počet černých uzlů na cestě z uzlu x (ale bez uzlu x) k listu. Bh(T) stromu T je rovna bh(r), kde r je kořen stromu.
3 Výška Red-Black stromů s n uzly Lemma: Red-black strom T s bh(t)=h má minimálně 2h 1 uzlů. Lemma: Red-black strom T s bh(t)=h má maximálně 2h uzlú. Důsledek: Red-black strom s n uzly má výšku maximálně 2 log (n + 1). Důsledek: Operace nad red-black stromem velikosti n mají časovou složitost O(log n)
4 RB strom a implementace
5 Rotace Pravá rotace Levá rotace
6 Operace rotace se provádí v konstantním č ase Pravá rotace
7 Operace rotace se provádí v konstantním č ase Pravá rotace
8 Operace rotace se provádí v konstantním č ase Pravá rotace
9 Operace rotace se provádí v konstantním č ase Pravá rotace
10 Operace rotace se provádí v konstantním č ase Pravá rotace
11 Vložení prvku do Red-Black stromu Vkládaný prvek: 21
12 Vložení prvku do Red-Black stromu Vlastnosti Red-Black stromů Každý uzel stromu je obarven červenou nebo černou barvou. 17 Kořen stromu je obarven černě Listy (nil) jsou černé Vkládaný prvek: Červený uzel má pouze černé syny. Na kterékoliv cestě z kořene do listu leží stejný počet černých uzlů
13 Vložení prvku do Red-Black stromu Vkládaný prvek: 3
14 Vložení prvku do Red-Black Stromu Vlastnosti Red-Black stromu 17 Každý uzel stromu je obarven červenou nebo černou barvou Kořen stromu je obarven černě. Listy (nil) jsou černé. Problém dvou červených uzlů Červený uzel má pouze černé syny. 3 Vkládaný prvek: 3 33 Na kterékoliv cestě z kořene do listu leží stejný počet černých uzlů Cíl:Obnovit vlastnosti Red-black stromu přebarvením uzlů popř. provedením rotací
15 prvku do Red-Black Stromu Vlastnosti Red-Black stromu 17 Každý uzel stromu je obarven červenou nebo černou barvou Kořen stromu je obarven černě. Listy (nil) jsou černé. Problém dvou červených uzlů Červený uzel má pouze černé syny. 3 Vkládaný prvek: 3 33 Na kterékoliv cestě z kořene do listu leží stejný počet černých uzlů Cíl:Obnovit vlastnosti Red-black stromu přebarvením uzlů popř. provedením rotací
16 Obnovení vlastností Red-black stromu Ve stromu existuje pouze jeden červený uzel x jehož předchůdce je červený Postup: Opravit problém dvou červených uzlů x Oprava může způsobit stejný problém u předka -> je nutné postupovat směrem ke kořeni a upravit totéž i u předků Platí následující: Jelikož x má červeného předka pak x není kořen stromu. Je-li parent[x] červený, pak ani on není kořenem tj. existuje parent[parent[x]]. Je-li parent[x] černý, pak úpravy končí. parent[parent[x]] parent[parent[x]]? parent[x] x parent[x] x
17 Algoritmus vložená prvků do RB stromu
18
19 Obnovení vlastností Red-black stromu Existují 3 případy: parent[x] a jeho bratr jsou červení parent[x] je červený, jeho bratr je černý, and x je levý syn svého rodiče jako v případě 2; ale x je pravý syn svého rodiče parent[parent[x]] x Přebarvení parent[x] x Případ 1 parent[parent[x]] Přebarvení parent[x] x Případ 2 Pravá rotace
20 Obnovení vlastností Red-black stromu Existují 3 případy: parent[x] jeho bratr jsou červení parent[x] je červrný, and x je levý syn svého rodiče jako v případě 2; ale x je pravý syn svého rodiče parent[parent[x]] Přebarvení + Pravá rotace Levá rotace parent[x] x Případ 3 Případ 2
21 Vložení prvku do Red-black stromu - shrnutí Pozorování: Každý z uvedených případů je proveden v konstantním čase Případ 1 přesouvá x o dva kroky blíže ke kořeni a neprovádí se v něm žádné rotace pouze se přebarvují uzly V Případě 2 a 3, se provádí 1 nebo 2 rotace; pak úpravy končí Lemma: Vložení prvku do red-black stromu s n uzly má časovou složitost O(log n) a provádí se v něm pouze 2 rotace.
22 Zrušení uzlu v Red-Black stromu Vlastnosti Red-Black stromů Každý uzel stromu je obarven červenou nebo černou barvou Kořen stromu je obarven černě Červený uzel má pouze černé syny Rušený prvek: 25 Listy (nil) jsou černé. Na kterékoliv cestě z kořene do listu leží stejný počet černých uzlů
23 Vlastnosti Red-Black stromů Každý uzel stromu je obarven červenou nebo černou barvou Kořen stromu je obarven černě uzlu v Red-Black stromu Listy (nil) jsou černé. 49 Červený uzel má pouze černé syny. Na kterékoliv cestě z kořene do listu leží stejný počet černých uzlů Rušený prvek: 25
24 Zrušení uzlu v Red-Black stromu Vlastnosti Red-Black stromů Každý uzel stromu je obarven červenou nebo černou barvou Kořen stromu je obarven černě Červený uzel má pouze černé syny Rušený prvek: 18 Listy (nil) jsou černé. Na kterékoliv cestě z kořene do listu leží stejný počet černých uzlů
25 Zrušení uzlu v Red-Black stromu Vlastnosti Red-Black stromů Každý uzel stromu je obarven červenou nebo černou barvou Kořen stromu je obarven černě Červený uzel má pouze černé syny Rušený prvek: 18 Listy (nil) jsou černé. Na kterékoliv cestě z kořene do listu leží stejný počet černých uzlů
26 Zrušení uzlu v Red-Black stromu Vlastnosti Red-Black stromů Každý uzel stromu je obarven červenou nebo černou barvou Kořen stromu je obarven černě Červený uzel má pouze černé syny Rušený prvek: 18 Listy (nil) jsou černé. Na kterékoliv cestě z kořene do listu leží stejný počet černých uzlů První krok: Označíme syna zrušeného uzlu jako extra černý ( doubly black )
27 Zrušení uzlu v Red-Black stromu Vlastnosti Red-Black stromů Barva neodpovídá 17 Každý uzel stromu je obarven červenou nebo černou barvou Kořen stromu je obarven černě Listy (nil) jsou černé Rušený prvek: 18 Červený uzel má pouze černé syny. Na kterékoliv cestě z kořene do listu leží stejný počet černých uzlů
28 Zrušení uzlu v Red-Black stromu Rušený prvek: 18
29 Korekce barvy uzlů v RB stromu Předpokládejme že x je levý syn svého rodiče a jeho bratr w je černý. Existují 3 případy, závisející parent[x] c na barvě synů w: Oba synové w jsou černí Pravý syn w je červený Levý syn w je červený a pravý je černý x c Přebarvení w x Případ 1 parent[x] c w x c' Případ 2 c Přebarvení c c' Levá rotace c'
30 Korekce barvy uzlů v RB stromu Předpokládejme že x je levý syn svého rodiče a jeho bratr w je černý. Existují 3 případy, závisející na barvě synů w: Oba synové w jsou černí Pravý syn w je červený Levý syn w je červený a pravý je černý parent[x] c x Případ 3 c w Přebarvení c Pravá rotace Případ 2
31 Korekce barvy uzlů v RB stromu Případ 4: Pravý bratr w uzlu x je červený. w (old) parent[x] parent[x] Přebarvení x Případ 4 w Levá rotace x w x w (new) Pozorování: Případy 2 a 3 provádí maximálně 2 rotace; pak je vše hotovo Případ 1 pouze přebarvuje a přesouvá korekci o jeden krok blíže ke kořeni Případ 4 provádí pouze jedinou rotaci a přesouvá korekci o jeden krok dále od kořene! Lemma: Zrušení uzlu v red-black stromu s n uzly má časovou složitost O(log n) a provádí maximálně tři rotace.
32 Algoritmus zrušení prvku RB stromu
33 Algoritmus zrušení prvku RB stromu
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
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
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ý
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í
Základy algoritmizace c2007 Michal Krátký, Jiří Dvorský 1/57
Základy algoritmizace Michal Krátký 1, Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Základy algoritmizace, 2006/2007 Základy algoritmizace c2007 Michal Krátký, Jiří Dvorský 1/57
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í
Definice. B-stromu. B-strom řádu m je strom, kde každý uzel má maximálně m následníků a ve kterém platí:
B-Strom Definice B-stromu B-strom řádu m je strom, kde každý uzel má maximálně m následníků a ve kterém platí: 1. Počet klíčů v každém vnitřním uzlu, je o jednu menší než je počet následníků (synů) 2.
Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2013/2014 Radim Farana. Obsah. Strom
8 Podklady ředmětu ro akademický rok 2013/2014 Radim Farana Obsah 2 Dynamické datové struktury. Strom. Binární stromy. Vyhledávací stromy. Vyvážené stromy. AVL stromy. Strom 3 Název z analogie se stromy.
B-Stromy. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol.
B-Stromy Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol., 2018 Datové struktury a algoritmy, B6B36DSA 01/2018, Lekce 11 https://cw.fel.cvut.cz/wiki/courses/b6b36dsa/start
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.
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
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
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
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
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
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ě
Dynamicky vázané metody. Pozdní vazba, virtuální metody
Dynamicky vázané metody Pozdní vazba, virtuální metody Motivace... class TBod protected: float x,y; public: int vrat_pocet_bodu() return 1; ; od třídy TBod odvodíme: class TUsecka: public TBod protected:
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í
Datové struktury Úvod
Datové struktury Úvod Navrhněte co nejjednodušší datovou strukturu, která podporuje následující operace: 1. Insert a Delete v O(n), Search v O(log n); Datové struktury Úvod Navrhněte co nejjednodušší datovou
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
Datový typ prioritní fronta Semestrální práce z předmětu 36PT
Datový typ prioritní fronta Semestrální práce z předmětu 36PT Martin Tůma Cvičení 113, Út 18:00 22. května 2004 Specifikace problému Často potřebujeme přístup k informacím, tak aby tyto byly seřazeny podle
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)
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
Návrh Designu: Radek Mařík
1. 7. Najděte nejdelší rostoucí podposloupnost dané posloupnosti. Použijte metodu dynamického programování, napište tabulku průběžných délek částečných výsledků a tabulku předchůdců. a) 5 8 11 13 9 4 1
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
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
Složitosti základních operací B + stromu
Složitosti základních operací B + stromu Radim Bača VŠB Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky ŠKOMAM 2010-1- 28/1/2010 Složitosti základních operací B +
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
Pokročilá algoritmizace amortizovaná složitost, Fibonacciho halda, počítačová aritmetika
amortizovaná složitost, Fibonacciho halda, počítačová aritmetika Jiří Vyskočil, Marko Genyg-Berezovskyj 2009 Amortizovaná složitost Asymptotická složitost často dostatečně nevypovídá o složitosti algoritmů,
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é
TÉMATICKÝ OKRUH TZD, DIS a TIS
TÉMATICKÝ OKRUH TZD, DIS a TIS Číslo otázky : 13. Otázka : Základní datové struktury (pole, zásobník, binární strom atd.), datové struktury vhodné pro fyzickou implementaci relačních dat v SŘBD (hašovací
Programování v C++ 1, 16. cvičení
Programování v C++ 1, 16. cvičení binární vyhledávací strom 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí minule procvičené
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
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,
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
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
Prioritní fronta, halda (heap), řazení
Prioritní fronta, halda (heap), řazení Co je prioritní fronta? Definována operacemi - vlož prvek - vyber největší (nejmenší) prvek Proč pf? Rozhraní: class PF { // ADT rozhrani PF(); boolean jeprazdna();
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
Stromy. Jan Kybic.
Stromy Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 1 / 44 Stromy Binární vyhledávací stromy Množiny a mapy 2 / 44 Strom (Tree) Strom skládá se s uzlů (nodes) spojených hranami (edges).
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
Binární vyhledávací stromy II
Binární vyhledávací stromy II doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 19. března 2019 Jiří Dvorský (VŠB TUO) Binární vyhledávací
B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11
333LP - lgoritmy a programování - Zkouška z předmětu 333LP Jméno Příjmení Už. jméno Marek oháč bohacm11 Zkouškový test Otázka 1 Jaká je hodnota proměnné count po vykonání následujícího kódu: data=[4,4,5,5,6,6,6,7,7,7,7,8,8]
A4B33ALG 2010/05 ALG 07. Selection sort (Select sort) Insertion sort (Insert sort) Bubble sort deprecated. Quicksort.
A4B33ALG 2010/05 ALG 07 Selection sort (Select sort) Insertion sort (Insert sort) Bubble sort deprecated Quicksort Stabilita řazení 1 Selection sort Neseřazeno Seřazeno Start T O U B J R M A K D Z E min
B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11
Jméno Příjmení Už. jméno Marek oháč bohacm11 Zkouškový test Otázka 1 Jaká je hodnota proměnné count po vykonání následujícího kódu: data=[4,4,5,5,6,6,6,7,7,7,7,8,8] count=0 for i in range(1,len(data)):
5 Rekurze a zásobník. Rekurzivní volání metody
5 Rekurze a zásobník Při volání metody z metody main() se do zásobníku uloží aktivační záznam obsahující - parametry - návratovou adresu, tedy adresu, kde bude program pokračovat v metodě main () po skončení
a) b) c) Radek Mařík
2012-03-20 Radek Mařík 1. Čísla ze zadané posloupnosti postupně vkládejte do prázdného binárního vyhledávacího stromu (BVS), který nevyvažujte. Jak bude vypadat takto vytvořený BVS? Poté postupně odstraňte
Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky
Datový typ. jak se budou data reprezentovat? jaké operace se budou nad daty provádět?
Základní datové struktury Datové typy jaká data jsou potřebné pro řešení problému? jak se budou data reprezentovat? jaké operace se budou nad daty provádět? Datový typ rozsah hodnot, které může nabývat
Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti.
Intervalové stromy Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme průběžně provádět tyto dvě operace: 1. Změna jednoho čísla v posloupnosti. 2. Zjištění součtu čísel
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),
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ší
Základy algoritmizace c2005, 2007 Michal Krátký, Jiří Dvorský1/39
Základy algoritmizace Michal Krátký 1, Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Základy algoritmizace, 2006/2007 Základy algoritmizace c2005, 2007 Michal Krátký, Jiří Dvorský1/39
Volné stromy. Úvod do programování. Kořenové stromy a seřazené stromy. Volné stromy
Volné stromy Úvod do programování Souvislý, acyklický, neorientovaný graf nazýváme volným stromem (free tree). Často vynecháváme adjektivum volný, a říkáme jen, že daný graf je strom. Michal Krátký 1,Jiří
Dynamické programování. Optimální binární vyhledávací strom
The complexity of different algorithms varies: O(n), Ω(n ), Θ(n log (n)), Dynamické programování Optimální binární vyhledávací strom Různé algoritmy mají různou složitost: O(n), Ω(n ), Θ(n log (n)), The
ABSTRAKTNÍ DATOVÉ TYPY
Jurdič Radim ABSTRAKTNÍ DATOVÉ TYPY Veškeré hodnoty, s nimiž v programech pracujeme, můžeme rozdělit do několika skupin zvaných datové typy. Každý datový typ představuje množinu hodnot, nad kterými můžeme
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í
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 Třídění, vyhledávání Daniela Szturcová
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ě
Časová a prostorová složitost algoritmů
.. Časová a prostorová složitost algoritmů Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Hodnocení algoritmů Programovací techniky Časová a prostorová
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
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
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
Rekurze a zásobník. Jak se vypočítá rekurzivní program? volání metody. vyšší adresy. main(){... fa(); //push ret1... } ret1
Rekurze a zásobník Jak se vypočítá rekurzivní program? volání metody vyšší adresy ret1 main(){... fa(); //push ret1... PC ret2 void fa(){... fb(); //push ret2... return //pop void fb(){... return //pop
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
V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2
Euklidův algoritmus Doprovodný materiál pro cvičení Programování I. NPRM044 Autor: Markéta Popelová Datum: 31.10.2010 Euklidův algoritmus verze 1.0 Zadání: Určete největšího společného dělitele dvou zadaných
BINARY SEARCH TREE
---------------------------------------- BINARY SEARCH TREE --------------------------------------------------- Je dán BVS s n uzly. Máme za úkol spočítat hodnotu součtu všech klíčů v tomto stromě. Když
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
1. Binomiální haldy. 1.1. Zavedení binomiální haldy
1. Binomiální haldy V této kapitole popíšeme datovou strukturu zvanou binomiální halda. Základní funkcionalita binomiální haldy je podobná binární haldě, nicméně jí dosahuje jinými metodami a navíc podporuje
Algoritmy II. Otázky k průběžnému testu znalostí
Algoritmy II Otázky k průběžnému testu znalostí Revize ze dne 19. února 2018 2 Lineární datové struktury 1 1. Vysvětlete co znamená, že zásobník představuje paměť typu LIFO. 2. Co je to vrchol zásobníku?
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ší
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.
Michal Krátký. Úvod do programování. Cíl kurzu. Podmínky získání zápočtu III/III
Michal Krátký Ú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 tel.: +420 596 993 239 místnost: A1004 mail: michal.kratky@vsb.cz
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
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS PŘÍPRAVA DOMÁCÍCH
BINARY SEARCH TREE
Níže uvedené úlohy představují přehled otázek, které se vyskytly v tomto nebo v minulých semestrech ve cvičení nebo v minulých semestrech u zkoušky. Mezi otázkami semestrovými a zkouškovými není žádný
autoři: Rudolf Bayer, Ed McCreight všechny vnější uzly (listy) mají stejnou hloubku ADS (abstraktní datové struktury)
definice ( tree) autoři: Rudolf Bayer, Ed McCreight vyvážený strom řádu m ( ) každý uzel nejméně a nejvýše m potomků s výjimkou kořene každý vnitřní uzel obsahuje o méně klíčů než je počet potomků (ukazatelů)
3 Algoritmy řazení. prvku a 1 je rovněž seřazená.
Specifikace problému řazení (třídění): A... neprázdná množina prvků Posl(A)... množina všech posloupností prvků z A ... prvky množiny Posl(A) q... délka posloupnosti Posl(A), přičemž Delka()
Jazyk C++ II. STL knihovna kontejnery část 2
Jazyk C++ II STL knihovna kontejnery část 2 AR 2013/2014 Jazyk C++ II Asociativní kontejnery Slovníky u kterých pořadí dat nemá smysl. Kontejner si sám určuje, kam který údaj uloží. Údaje mají tvar klíč/hodnota.
Přijímací zkouška - informatika
Přijímací zkouška - informatika Jméno a příjmení pište do okénka Číslo přihlášky Číslo zadání 1 Algoritmizace a datové struktury 1 Předpokládejme existenci oboustranně spojovaného seznamu prvků (list),
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),
Operace ALU. INP 2008 FIT VUT v Brně
Operace ALU INP 2008 FIT VUT v Brně 1 Princip ALU (FX) Požadavky: Logické operace Sčítání (v doplňkovém kódu) Posuvy/rotace Násobení ělení B A not AN OR XOR + Y 1) Implementace logických operací je zřejmá
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á
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í
Stromové struktury v relační databázi
Stromové struktury v relační databázi Stromové struktury a relační databáze Zboží Procesory Paměti Intel AMD DDR DIMM Pentium IV Celeron Duron Athlon http://interval.cz/clanky/metody-ukladani-stromovych-dat-v-relacnich-databazich/
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í
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í
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)
Časová složitost / Time complexity
Časová složitost / Time complexity Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2018 1 / 24 Složitost algoritmů Algorithm complexity Časová a paměťová složitost Trvání výpočtu v závislosti
Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy
Ú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 Procesor Procesorem je objekt, který vykonává algoritmem popisovanou
Algoritmizace složitost rekurzivních algoritmů. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
složitost rekurzivních algoritmů Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Vyjádřen ení složitosti rekurzivního algoritmu rekurentním m tvarem Příklad vyjádření složitosti rekurzivního algoritmu rekurencí:
Základy algoritmizace a programování
Základy algoritmizace a programování Složitost algoritmů. Třídění Přednáška 8 16. listopadu 2009 Který algoritmus je "lepší"? Různé algoritmy, které řeší stejnou úlohu zbytek = p % i; zbytek = p - p/i*i;
Porovnání výkonu různých variant splay stromů
Gymnázium J. S. Machara Brandýs nad Labem Stará Boleslav Porovnání výkonu různých variant splay stromů ročníková práce Autor práce: Vojtěch Káně Vedoucí práce: Mgr. Martin Mareš, Ph.D. Obor: Informační
Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem
Test prvočíselnosti Úkol: otestovat dané číslo N, zda je prvočíslem 1. zkusit všechny dělitele od 2 do N-1 časová složitost O(N) cca N testů 2. stačí zkoušet všechny dělitele od 2 do N/2 (větší dělitel
SQL tříhodnotová logika
SQL tříhodnotová logika Jmeno Prijmeni Student Jaroslav Novák true Josef Novotný false Jiří Brabenec SELECT * FROM OSOBA WHERE Student!= true Jaký bude výsledek? SQL tříhodnotová logika Jmeno Prijmeni
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ší
UNIVERZITA PARDUBICE DIPLOMOVÁ PRÁCE
UNIVERZITA PARDUBICE FAKULTA ELEKTROTECHNIKY A INFORMATIKY DIPLOMOVÁ PRÁCE 2011 Bc. Tomáš Michek Univerzita Pardubice Fakulta elektrotechniky a informatiky Datové struktury pro uchovávání geografický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
Spojové struktury. Spojová struktura (linked structure):
Spojová struktura (linked structure): Spojové struktury množina objektů propojených pomocí spojů (odkazů, referencí, ukazatelů) Spoj často vyjadřuje vztah předchůdce následník Lineární spojové struktury
TÉMATICKÝ OKRUH Počítače, sítě a operační systémy
TÉMATICKÝ OKRUH Počítače, sítě a operační systémy Číslo otázky : 12. Otázka : Metody fyzické organizace dat Obsah : 1.Úvod 2.Vnější paměti 3.Sekvenční soubory 3.1 Setříděné sekvenční soubory 4.Zřetězené
Abstraktní datové typy FRONTA
Abstraktní datové typy FRONTA Fronta je lineární datová struktura tzn., že ke každému prvku s výjimkou posledního náleží jeden následník a ke každému prvku s výjimkou prvního náleží jeden předchůdce. Do