insertia cheilor in arbori b

10
Calin Jebelean Insertia Cheilor In Arbor i B 1 Insertia Cheilor In Arbori B Insertia unei chei noi intr-un arbore B se face intotdeauna intr-o pagina terminala Fie arborele B de ordinul 2 din figura: Fiind de ordinul 2, inseamna ca fiecare pagina trebuie sa contina intre 2 si 4 chei , cu exceptia eventual, a paginii radacina Presupunem ca dorim sa inseram cheia 26 in acest arbore 8 19 32 - 2 3 5 - 10 12 14 17 22 28 31 - 37 39 42 46

Upload: mervin

Post on 21-Jan-2016

19 views

Category:

Documents


0 download

DESCRIPTION

Insertia Cheilor In Arbori B. Insertia unei chei noi intr-un arbore B se face intotdeauna intr-o pagina terminala Fie arborele B de ordinul 2 din figura: Fiind de ordinul 2, inseamna ca fiecare pagina trebuie sa contina intre 2 si 4 chei , cu exceptia eventual, a paginii radacina - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Insertia Cheilor In Arbori B

Calin Jebelean Insertia Cheilor In Arbori B 1

Insertia Cheilor In Arbori B

Insertia unei chei noi intr-un arbore B se face intotdeauna intr-o pagina terminalaFie arborele B de ordinul 2 din figura:

Fiind de ordinul 2, inseamna ca fiecare pagina trebuie sa contina intre 2 si 4 chei, cu exceptia eventual, a paginii radacinaPresupunem ca dorim sa inseram cheia 26 in acest arbore

8 19

32

-

2 3 5 - 10

12

14

17

22

28

31

- 37

39

42

46

Page 2: Insertia Cheilor In Arbori B

Calin Jebelean Insertia Cheilor In Arbori B 2

Insertia Cheilor In Arbori B

Trebuie sa ajungem la o pagina terminalaPlecand de la radacina, observam ca 26 se afla ca valoare intre 19 si 32, deci trebuie sa urmam sageata “dintre” 19 si 32 (cea ingrosata), care ne duce deja intr-o pagina terminalaPagina terminala la care am ajuns contine 3 chei (22, 28 si 31), deci nu este plina (exista loc pentru 4 chei in orice pagina)In acest caz, trebuie sa inseram cheia 26 in tabloul care contine deja cheile 22, 28 si 31Atentie!!! Dupa insertie, tabloul trebuie sa ramana ordonat, deci 26 va intra intre 22 si 28

8 19

32

-

2 3 5 - 10

12

14

17

22

28

31

- 37

39

42

46

Start

26

Page 3: Insertia Cheilor In Arbori B

Calin Jebelean Insertia Cheilor In Arbori B 3

Insertia Cheilor In Arbori B

Rezultatul insertiei este:

Ce s-ar fi intamplat daca pagina terminala in care trebuia sa inseram cheia ar fi fost plina?Aceasta situatie se numeste supradepasirePresupunem ca dorim sa inseram cheia 16 in arborele de mai sus

8 19

32

-

2 3 5 - 10

12

14

17

22

26

28

31

37

39

42

46

Page 4: Insertia Cheilor In Arbori B

Calin Jebelean Insertia Cheilor In Arbori B 4

Insertia Cheilor In Arbori B

Pagina terminala in care ajungem este cea incercuita cu o elipsaInsertia cheii 16 in aceasta pagina ar duce la:Numarul de chei din pagina depaseste limita maxima de 4, data de ordinul arborelui BSituatia se rezolva in felul urmator:

se ia cheia mediana din pagina (14) se “trimite” cheia mediana (14) pe nivelul superior!!! se imparte pagina in doua pagini mai mici:

una va contine cheile 10 si 12 a doua va contine cheile 16 si 17

cele 2 pagini noi se vor “lega” la stanga si la dreapta cheii mediane (14)

8 19

32

-

2 3 5 - 10

12

14

17

22

26

28

31

37

39

42

46

Start

16

10

12

14

16

17

- -

14

16

17

10

12

- -

Page 5: Insertia Cheilor In Arbori B

Calin Jebelean Insertia Cheilor In Arbori B 5

Insertia Cheilor In Arbori B

Vom incerca insertia lui 14 in pagina superioara celei in care se afla, adica in pagina radacinaCum aceasta nu este plina, insertia se poate face simplu

8 19

32

-

2 3 5 -

- - 16

17

22

26

28

31

37

39

42

46

14

8 14

19

32

2 3 5 - 10

12

16

17

- - 22

26

28

31

37

39

42

46

10

12

- -

- -

Page 6: Insertia Cheilor In Arbori B

Calin Jebelean Insertia Cheilor In Arbori B 6

Insertia Cheilor In Arbori B

In general, situatia se prezinta in felul urmator:

O pagina care are supradepasire (2·N+1 chei) se imparte in 2 pagini cu numar minim de chei (N) iar cheia mediana din pagina cu supradepasire va fi inserata pe nivelul superiorInsertia cheii mediane pe nivelul superior poate sa genereze o alta supradepasire, daca pagina de pe nivelul superior este la randul sau plinaIn acest caz, situatia se propaga un nivel mai sus si se rezolva recursiv pe noul nivel

N chei

N cheiM

Pagina cu 2·N+1 chei (supradepasire!!!)

N chei

N chei

M

Se incearca insertia

cheii M in pagina

superioara

Page 7: Insertia Cheilor In Arbori B

Calin Jebelean Insertia Cheilor In Arbori B 7

Insertia Cheilor In Arbori B

Presupunem ca dorim sa inseram cheia 24

Ea va fi inserata in pagina incercuita cu o elipsa

Apare supradepasire si cheia mediana (26) va fi trimisa spre insertie in pagina superioaraDar aceasta este la randul sau plina

8 14

19

32

2 3 5 - 10

12

16

17

- - 22

26

28

31

37

39

42

46

- -

8 14

19

32

2 3 5 - 10

12

16

17

- - 22

24

28

31

37

39

42

46

- - 26

Page 8: Insertia Cheilor In Arbori B

Calin Jebelean Insertia Cheilor In Arbori B 8

Insertia Cheilor In Arbori B

Problema supradepasirii s-a mutat cu un nivel mai susEa se rezolva recursiv, adica noua cheia mediana (19) va fi trimisa spre insertie in pagina superioaraNemaiexistand o pagina superioara, insertia se opreste cu rezultatul:

8 14

19

26

2 3 5 - 10

12

16

17

- - 22

24

- 28

37

39

42

46

- - -

32

31

- -

8 14

19

26

2 3 5 - 10

12

16

17

- - 22

24

- 28

37

39

42

46

- - -

32

31

- -

- - - -

- - -

Page 9: Insertia Cheilor In Arbori B

Calin Jebelean Insertia Cheilor In Arbori B 9

Insertia Cheilor In Arbori B

Cand propagarea supradepasirii de jos in sus ajunge pana la radacina inclusiv, arborele B va creste in inaltime

Aceasta este singura situatie in care un arbore B poate sa creasca in inaltime

De asemenea, pe arborele B rezultat se poate observa de ce radacina trebuie sa fie exceptie de la regula referitoare la numarul de chei dintr-o pagina (radacina arborelui rezultat contine o singura cheie)

Page 10: Insertia Cheilor In Arbori B

Calin Jebelean Insertia Cheilor In Arbori B 10

Insertia Cheilor In Arbori B

In continuare, se observa ca s-au creat nenumarate pozitii libere pentru viitoare insertii, deci inaltimea arborelui B creste relativ rar, in comparatie cu inaltimea unui arbore binar ordonat care ar fi continut aceleasi cheiCresterea “inceata” in inaltime este un alt avantaj al unui arbore B, deoarece performantele operatiilor pe arborele B sunt cu atat mai bune cu cat inaltimea arborelui este mai mica (la fel ca la arbori binari)Operatia de insertie de chei intr-un arbore B are o performanta logaritmica, deoarece se foloseste criteriul de ordonare a paginilor pentru a parcurge drumul de la radacina pana la ultimul nivel, dupa care, eventual, se parcurge si drumul invers pentru rezolvarea situatiilor de supradepasire – de regula, drumul invers nu este parcurs in totalitate ci doar pana nu mai apar situatii de supradepasireDrumul de la radacina pana la ultimul nivel are o lungime proportionala cu logaritmul numarului total de chei din arbore