autoři: Rudolf Bayer, Ed McCreight všechny vnější uzly (listy) mají stejnou hloubku ADS (abstraktní datové struktury)



Podobné dokumenty
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í:

Stromové struktury v relační databázi

SQL tříhodnotová logika

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í

Datové struktury Úvod

Algoritmy a datové struktury

Radek Mařík

Kapitola 11: Indexování a hešování. Základní představa

Složitosti základních operací B + stromu

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í

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

Stromové struktury v relační databázi

Binární vyhledávací strom pomocí směrníků Miroslav Hostaša L06620

Binární vyhledávací stromy

Amortizovaná složitost. Prioritní fronty, haldy (binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost

3 Algoritmy řazení. prvku a 1 je rovněž seřazená.

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

STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta

Stromy, haldy, prioritní fronty

Základy algoritmizace c2007 Michal Krátký, Jiří Dvorský 1/57

Semestrální práce 2 znakový strom

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

Základní datové struktury III: Stromy, haldy

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

Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz

Algoritmy výpočetní geometrie

Základy algoritmizace c2005, 2007 Michal Krátký, Jiří Dvorský1/39

Vyvažování a rotace v BVS, všude se předpokládá AVL strom

Volné stromy. Úvod do programování. Kořenové stromy a seřazené stromy. Volné stromy

ADT STROM Lukáš Foldýna

Vyhledávací stromy. Slouží jako pomůcka pro organizaci dat umožňující efektivní vyhledávání.

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

Fyzické uložení dat a indexy

Jednoduché datové struktury a stromy

a) b) c) Radek Mařík

Prioritní fronta, halda

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

IB108 Sada 1, Příklad 1 Vypracovali: Tomáš Krajča (255676), Martin Milata (256615)

Binární vyhledávací stromy pokročilé partie

TÉMATICKÝ OKRUH Teorie zpracování dat, Databázové a informační systémy a Teorie informačních systémů

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

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

k-dimenzionálním prostoru. problém: Zkonstruovat strom, který rozděluje prostor polorovinami

Stromy. Jan Hnilica Počítačové modelování 14

Binární vyhledávací stromy II

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

Dynamické datové struktury II.

Abstraktní datové typy FRONTA

TÉMATICKÝ OKRUH Počítače, sítě a operační systémy

Algoritmizace prostorových úloh

Triangulace. Význam triangulace. trojúhelník je základní grafický element aproximace ploch předzpracování pro jiné algoritmy. příklad triangulace

Red Black strom (Red Black Tree) Úvod do programování. Rotace. Red Black strom. Rotace. Rotace

Algoritmizace I. Ak. rok 2015/2016 vbp 1. ze 132

B-Stromy. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol.

Stromy. Jan Kybic.

8 A (strana 1) Soubory a složky, procházení, orientace

BINARY SEARCH TREE

Dynamické datové struktury III.

vhodná pro strojové dokazování (Prolog) metoda založená na vyvracení: dokazuje se nesplnitelnost formulí

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

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2

2 Datové struktury. Pole Seznam Zásobník Fronty FIFO Haldy a prioritní fronty Stromy Hash tabulky Slovníky

4 Stromy a les. Definice a základní vlastnosti stromů. Kostry grafů a jejich počet.

Dynamické datové struktury IV.

Cílem kapitoly je seznámit studenta se seznamem a stromem. Jejich konstrukci, užití a základní vlastnosti.

George J. Klir Vilem Vychodil (Palacky University, Olomouc) State University of New York (SUNY) Binghamton, New York 13902, USA

TÉMATICKÝ OKRUH TZD, DIS a TIS

Metody analýzy dat II

TGH07 - Chytré stromové datové struktury

Binární Vyhledávací Stromy, u kterých je. složitost operací v nejhorším. rovná O(log n)

07 Základní pojmy teorie grafů

Pokročilá algoritmizace amortizovaná složitost, Fibonacciho halda, počítačová aritmetika

ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK)

8. Geometrie vrací úder (sepsal Pavel Klavík)

Střední odborná škola a Střední odborné učiliště, Hořovice

III přednáška Toky v sítích

Hierarchický databázový model

Genetické programování

popel, glum & nepil 16/28

TGH07 - Chytré stromové datové struktury

DATABÁZE MS ACCESS 2010

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Algoritmy I. Třídění ALGI 2010/2011

1. Databázové systémy (MP leden 2010)

Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A

Dynamické programování. Optimální binární vyhledávací strom

BINARY SEARCH TREE

Reprezentace dat v informačních systémech. Jaroslav Šmarda

Projekt do předmětu: PV043 Informační systémy podniků

Na začátku rozdělíme práci a určíme, které podproblémy je potřeba vyřešit. Tyto

1. Blok Bloky a hladiny Barva a typ čáry v blocích 2. Vytvoření bloku příkaz BLOK [BLOCK]

Database engine (databázový stroj, databázový motor, databázové jádro) Systém řízení báze dat SŘBD. Typy SŘBD podle způsobu práce s daty

Teoretická informatika Tomáš Foltýnek Barvení grafů Platónská tělesa

WD Blue pro vysokou spolehlivost při každodenní práci.

Zdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2.

Rozhraní pro práci s XML dokumenty. Roman Malo

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

Teorie grafů BR Solutions - Orličky Píta (Orličky 2010) Teorie grafů / 66

Algoritmizace prostorových úloh

Graf. Uzly Lokality, servery Osoby fyzické i právní Informatické objekty... atd. Hrany Cesty, propojení Vztahy Informatické závislosti... atd.

Transkript:

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ů) od ( ) do ( ) všechny vnější uzly (listy) mají stejnou hloubku datová realizace ADS (abstraktní datové struktury) Datová struktura není vhodná pro malý počet záznamů!

použití: celá nebo část struktury stromu je uložena v nějaké externí (vnější) sekundární paměti např. pevný disk, magnetický disk (databáze) velmi časté pro tento případ je struktura optimalizována přístup do externí paměti je časově náročný minimalizace počtu přístupů do této paměti uzel = stránka o m záznamech viz: B tree animation příklad: vyvážený B strom řádu každý uzel má nejméně a nejvýše potomky (ukazatele) každý vnitřní uzel obsahuje nejméně a nejvýše 3 záznamy 9 7 6 7 9

vkládání: nový klíč se vždy vkládá do listové stránky ve stránce se klíče řadí podle velikosti přeplnění listové stránky stránka se rozdělí na dvě nové stránky prostřední klíč se přesune do rodičovské stránky pokud rodičovská stránka neexistuje, tak se vytvoří přeplnění rodičovské stránky opakujeme předchozí postup dokud nedojde k zařazení nebo k vytvoření nového kořene Pole klíčů:,,,,, 7,,, 3 strom řádu 3 každý uzel bude mít 3 potomky (podstromy) s výjimkou kořene každý vnitřní uzel bude mít nejméně a nejvýše záznamy k k 3

Pole klíčů:,,,,, 7,,, 3 Pole klíčů:,,,,, 7,,, 3

Pole klíčů:,,,,, 7,,, 3 Pole klíčů:,,,,, 7,,, 3

Pole klíčů:,,,,, 7,,, 3 Pole klíčů:,,,,, 7,,, 3 6

Pole klíčů:,,,,, 7,,, 3 Pole klíčů:,,,,, 7,,, 3 7

Pole klíčů:,,,,, 7,,, 3 Pole klíčů:,,,,, 7,,, 3

Pole klíčů:,,,,, 7,,, 3 Pole klíčů:,,,,, 7,,, 3 9

Pole klíčů:,,,,, 7,,, 3 Pole klíčů:,,,,, 7,,, 3

Pole klíčů:,,,,, 7,,, 3 Pole klíčů:,,,,, 7,,, 3 7 7

Pole klíčů:,,,,, 7,,, 3 7 7 Pole klíčů:,,,,, 7,,, 3 7

Pole klíčů:,,,,, 7,,, 3 Pole klíčů:,,,,, 7,,, 3 3

Pole klíčů:,,,,, 7,,, 3 Pole klíčů:,,,,, 7,,, 3

Pole klíčů:,,,,, 7,,, 3 Pole klíčů:,,,,, 7,,, 3

Pole klíčů:,,,,, 7,,, 3 Pole klíčů:,,,,, 7,,, 3 6

Pole klíčů:,,,,, 7,,, 3 Pole klíčů:,,,,, 7,,, 3 7

Pole klíčů:,,,,, 7,,, 3 3 3 Pole klíčů:,,,,, 7,,, 3 3 3

Pole klíčů:,,,,, 7,,, 3 3 3 Pole klíčů:,,,,, 7,,, 3 3 3 9

Pole klíčů:,,,,, 7,,, 3 3 rušení v listové stránce: máme více jak záznamů zrušíme záznam pouze v této listové stránce + posun máme právě záznamů v sousední listové stránce je dostatek klíčů (více jak ) přesuneme záznam z rodičovské stránky do listové přesuneme záznam ze sousední stránky do rodičovské v žádné sousední stránce není dostatek klíčů spojíme dohromady záznamy v obou sousedních stránkách spolu s příslušným záznamem v rodičovské stránce

rušení v rodičovské stránce: máme více jak záznamů ve stránce potomka je dostatek klíčů (více jak ) přesuneme záznam ze stránky potomka do rodičovské stránky ve stránce potomka není dostatek klíčů přesuneme záznamy ze stránky potomka do sousední stránky potomka máme pouze záznamů ve stránce potomka je dostatek klíčů (více jak ) přesuneme záznam ze stránky potomka do rodičovské stránky ve stránce potomka není dostatek klíčů přesuneme záznamy ze stránky potomka do sousední stránky potomka a řešíme problém o hladinu výše Pole klíčů:,,,,, 7,,, 3 najdeme 3 v listové stránce je více jak záznamů

Pole klíčů:,,,,, 7,,, 3 odstraníme 3 zrušíme záznam pouze v listové stránce Pole klíčů:,,,,, 7,,, 3 odstraníme 3 posuneme ostatní záznamy v listové stránce

Pole klíčů:,,,,, 7,,, 3 najdeme 3 rušíme záznam v rodičovské stránce Pole klíčů:,,,,, 7,,, 3 odstraníme 3 ve stránce potomka je dostatek klíčů (více jak ) 3

Pole klíčů:,,,,, 7,,, 3 odstraníme 7 3 přesuneme záznam ze stránky potomka do rodičovské stránky Pole klíčů:,,,,, 7,,, 3 najdeme 7 3 rušíme záznam v rodičovské stránce

Pole klíčů:,,,,, 7,,, 3 odstraníme 7 3 přesuneme záznamy ze stránky potomka do sousední stránky potomka řešíme problém o hladinu výše Pole klíčů:,,,,, 7,,, 3 odstraníme 7 3 přesuneme záznamy ze stránky potomka do sousední stránky potomka řešíme problém o hladinu výše

Pole klíčů:,,,,, 7,,, 3 odstraníme 7 3 přesuneme záznamy ze stránky potomka do sousední stránky potomka řešíme problém o hladinu výše Pole klíčů:,,,,, 7,,, 3 odstraníme 7 3 přesuneme záznamy ze stránky potomka do sousední stránky potomka řešíme problém o hladinu výše 6

Pole klíčů:,,,,, 7,,, 3 odstraníme 7 3 B( ) (m) strom řádu m: log log počet uzlů hloubka počet záznamů m m m.(m ) m m.(m ) : : : m h h m h.(m ) 7