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í:



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

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

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

ADT STROM Lukáš Foldýna

Radek Mařík

Datové struktury Úvod

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

Algoritmy výpočetní geometrie

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

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

ABSTRAKTNÍ DATOVÉ TYPY

Binární vyhledávací stromy

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

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2013/2014 Radim Farana. Obsah. Strom

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

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

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

Dynamické datové struktury III.

Algoritmy a datové struktury

popel, glum & nepil 16/28

50 Zápisník skupiny. Popis modulu

TÉMATICKÝ OKRUH TZD, DIS a TIS

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

1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) b)

Stromy, haldy, prioritní fronty

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

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

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

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

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

a) b) c) Radek Mařík

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í

Prohledávání do šířky = algoritmus vlny

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

Algoritmizace prostorových úloh

Abstraktní datové typy FRONTA

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

Obsah Přehled existujících a evidence nových klientů... 3 Přehled foto-záznamů... 4 Nahrávání foto-záznamů... 6 Analýza foto-záznamů...

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

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

Grafové algoritmy. Programovací techniky

Grafové algoritmy. Programovací techniky

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í

Dynamicky vázané metody. Pozdní vazba, virtuální metody

6. Fyzická (interní) úroveň databázového systému

Binární vyhledávací stromy II

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

6. Fyzická (interní) úroveň databázového systému

Stromové struktury v relační databázi

Prioritní fronta, halda

Lokality a uživatelé

Maturitní téma: Programovací jazyk JAVA

Návrh Designu: Radek Mařík

Předmět: Algoritmizace praktické aplikace

07 Základní pojmy teorie grafů

Program Expedia Traveler Preference: Správa rezervací a plateb

Microsoft, Windows, Plocha, Průzkumník, Adresář,

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

Programování II. Návrh programu I 2018/19

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

Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM. Manuál pro administrátory. Verze 1.

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í v C++ 2, 4. cvičení

Jan Březina. 7. března 2017

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

Výroková a predikátová logika - III

METODICKÝ POKYN PRÁCE S MS PowerPoint - ZAČÁTEČNÍCI. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.

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

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

Masarykova ZŠ Klenčí pod Čerchovem OPERAČNÍ SYSTÉM

Zemětřesení a sopečná činnost

Používání sdíleného kalendáře v projektu Bioanalytické centrum

Vlastnosti Derivační strom Metody Metoda shora dolů Metoda zdola nahoru Pomocné množiny. Syntaktická analýza. Metody a nástroje syntaktické analýzy

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

Návod k ovládání aplikace

Druhá skupina zadání projektů do předmětu Algoritmy II, letní semestr 2014/2015

Školní události. v Pozn.: Níže popsaný návod je určen pro uživatele s rolí Administrátor, není-li uvedeno jinak.

Školení on line blok 1: MS Excel základy (ukázka)

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

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

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

Dynamické datové typy a struktury

Základy umělé inteligence

Úvod do databázových systémů

44 Organizace akcí. Popis modulu. Záložka Seznam akcí

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

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

Implementace aritmetického stromu pomocí směrníků

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

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

MS Excel Lekce 1. Operační program Vzdělávání pro konkurenceschopnost. Projekt Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU

3.2. Výchozí obrazovka Přihlášení uživatele. Ve výchozím stavu modul umožňuje pouze prohlížení jídelníčku bez všech definovaných omezení.

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

Převod na 2. pololetí

A4B33ALG 2010/05 ALG 07. Selection sort (Select sort) Insertion sort (Insert sort) Bubble sort deprecated. Quicksort.

Výkresy. Projekt SIPVZ D Modelování v SolidWorks. Autor: ing. Laďka Krejčí

Varianty Monte Carlo Tree Search

Dynamické datové struktury IV.

Transkript:

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. Všechny listy jsou na stejné úrovni (mají stejnou hloubku) 3.Všechny uzly kromě kořene mají nejméně následníků( -1 klíčů) m 2 4.Kořen je buďto list, nebo má od 2 do m následníků 5. Žádný uzel neobsahuje více než m následníků (m-1 klíčů) m 2

Příklad B-Stromu

Vytvoření B-stromu Předpokládejme, že začínáme s prázdným B-stromem a ukládáme klíče v následujícím pořadí: 1 12 8 2 25 5 14 28 17 7 52 16 48 68 3 26 29 53 55 45 Chceme vytvořit B-strom řádu m=5, tj.každý uzel (kromě kořene) obsahuje nejméně 2 klíče a nejvýše 4 klíče. První 4 klíče : 1 2 8 12 Vložení páté položky (klíč 25) poruší podmínku 5 (dojde k tzv. přeplnění stránky) Přeplňená stránka se rozdělí na dvě, prostřední prvek se přesune do nadřazené stránky

Vytvoření B-stromu (pokračování) 8 1 2 12 25 Další položky 6, 14, 28 budou vloženy do listů (listy se obsazují nejdříve 8 1 2 6 12 14 25 28

Vytváření B-stromu Vložení 17 do pravé stránky způsobí přeplnění, stránka se rozdělí podle prostředního klíče a ten se přesune do kořene 8 17 1 2 6 12 14 25 28 7, 52, 16, 48 se opět přidají do listů 8 17 1 2 6 7 12 14 16 25 28 48 52

Vytváření B-stromu Vložení 68 opět způsobí přeplnění stránky vpravo, klíč 48 se přesune do kořene, 3 přeplní levou stránku a po rozdělení přechází do kořene; 26, 29, 53, 55 jsou vloženy do listů 3 8 17 48 1 2 6 7 12 14 16 25 26 28 29 52 53 55 68 45 přeplní stránku 25 26 28 29 a klíč 28 se přesune do kořene, kde způsobí přeplnění a rozdělení kořenové stránky

Vytváření B-stromu 17 3 8 28 48 1 2 6 7 12 14 16 25 26 29 45 52 53 55 68

Vložení prvku do B-stromu (shrnutí) Nový prvek se vždy vkládá do listové stránky, ve stránce se klíče řadí podle velikosti. Pokud dojde k přeplnění listové stránky, stránka se rozdělí na dvě a prostřední klíč se přesune do nadřazené stránky (pokud nadřazená stránka neexistuje, tak se vytvoří) Pokud dojde k přeplnění nadřazené stránky předchozí postup se opakuje dokud nedojde k zařazení nebo k vytvoření nového kořene.

Rušení prvků B-stromu - rušení v listech bez podtečení velikosti stránky Předpokládejme B-strom 5 řádu... 12 29 52 2 7 9 15 22 31 43 56 69 72 Zrušení klíče 2: Jelikož ve stránce je dostatečné množství klíčů, Dojde pouze ke zrušení hodnoty 2 v listové stránce

Rušení prvků B-stromu - rušení v listech bez podtečení velikosti stránky Předpokládejme B-strom 5 řádu... 12 29 52 2 7 9 15 22 31 43 56 69 72

Rušení prvků B-stromu - rušení pvku v ostatních stránkách (kromě listů) bez podtečení velikosti stránky 12 29 52 Zrušit 52 2 7 9 15 22 31 43 56 69 72

Rušení prvků B-stromu - rušení pvku v ostatních stránkách (kromě listů) bez podtečení velikosti stránky 12 29 2 7 9 15 22 31 43 56 69 72

Rušení prvků B-stromu - rušení pvku v ostatních stránkách (kromě listů) bez podtečení velikosti stránky 12 29 52 56 Delete 52 7 9 15 22 31 43 56 69 72 Borrow the predecessor or (in this case) successor

Rušení prvků B-stromu - rušení pvku v ostatních stránkách (kromě listů) bez podtečení velikosti stránky 12 29 56 7 9 15 22 31 43 69 72

Rušení prvků ve stránce s minimálním počtem klíčů sousední stránky obsahují také minimální počet klíčů 12 29 56 7 9 15 22 31 43 69 72 Delete 72

Rušení prvků ve stránce s minimálním počtem klíčů sousední stránky obsahují také minimální počet klíčů 12 29 56 7 9 15 22 31 43 69 72 Delete Málo klíčů! 72

Rušení prvků ve stránce s minimálním počtem klíčů sousední stránky obsahují také minimální počet klíčů 12 29 56 Spojit dohromady 7 9 15 22 31 43 69 72 Delete Málo klíčů! 72

Rušení prvků ve stránce s minimálním počtem klíčů sousední stránky obsahují také minimální počet klíčů 12 29 7 9 15 22 31 43 56 69

Rušení prvků ve stránce s minimálním počtem klíčů sousední stránky obsahují dostatek klíčů 12 29 7 9 15 22 31 43 56 69 Zrušit 22

Rušení prvků ve stránce s minimálním počtem klíčů sousední stránky obsahují dostatek klíčů 12 29 7 9 15 22 31 43 56 69 Delete 22

Rušení prvků ve stránce s minimálním počtem klíčů sousední stránky obsahují dostatek klíčů 12 29 Přesunout klíč z kořene do listu, klíč ze souseda do kořene 7 9 15 22 31 43 56 69 Delete 22

Rušení prvků ve stránce s minimálním počtem klíčů sousední stránky obsahují dostatek klíčů 12 31 7 9 15 29 43 56 69

Analýza B-Stromů Maximální počet položek v B-stromu řádu m a výšky h: kořen m 1 úroveň 1 m(m 1) úroveň 2 m 2 (m 1)... úroveň h m h (m 1) Celkový počet položek je (1 + m + m 2 + m 3 + + m h )(m 1) = [(m h+1 1)/ (m 1)] (m 1) = m h+1 1 Pokud m = 5 a h = 2 tak je celkem 5 3 1 = 124 položek

Implementace B-stromu - dynamická Bulut #25

Implementace B-stromu -statická Bulut #26

Vytvoření B-stromu

Vložení prvku do B-Stromu

Vložení prvku do B-stromu

Rozdělení stránky

Vyhledávání v B-Stromu