1 / 25

Árvore Binária de Busca

Árvore Binária de Busca. seja uma árvore binária de busca T , para um conjunto de chaves S= { S 1 , S 2 , ....S n } qual o número total de comparações efetuadas para se localizar uma chave em S ? para buscar uma chave S k , o algoritmo percorre o caminho da raiz até S k

ellard
Download Presentation

Árvore Binária de Busca

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Árvore Binária de Busca • seja uma árvore binária de busca T, para um conjunto de chaves S= { S1, S2, ....Sn} • qual o número total de comparações efetuadas para se localizar uma chave em S? • para buscar uma chave Sk, o algoritmo percorre o caminho da raiz até Sk • número de comparações  nível de Sk • seja nivel (Sk) = Lk e seja nivel(raiz) = 1 1

  2. Árvore Binária de Busca • o número total de comparações necessárias para o acesso a todas as chaves de S é : 1kn Lk • definição: • comprimento de caminho interno de T I(T) = 1kn Lk 2

  3. Árvore Binária de Busca • o total de comparações em buscas realizadas com sucesso: • O comprimento de caminho interno • buscas sem sucesso • comparações também são realizadas • termina obrigatoriamente em uma subárvore vazia 3

  4. Árvore Binária de Busca • As buscas sempre irão até um nó interno que fica em um nível imediatamente superior a um nó externo • Seja L’k o nível do nó externo • As buscas cessam no nível L’k - 1 • E(T) - Comprimento de Caminho Externo 1kn(L’k - 1)‏ 4

  5. Árvore Binária de Busca • I(T) e E(T) mostram a qualidade da árvore no problema de busca • Os valores I(T)/n e E(T)/(n+1) representam os números médios de comparações efetuadas em operações de busca com e sem sucesso, respectivamente. 5

  6. Árvore Binária de Busca • I(T) = 19 • em média I(T)/n = 2.71 • E(T) = 26 • em média E(T)/(n+1) = 3.25 6

  7. Árvore Binária de Busca • Relação entre os comprimentos de caminho interno e externo E(T) = I(T) + n • Se n = 1 , I(T) = 1 e E(T) = 1 + 1 = 2 • Suponha verdadeiro para ávores com n-1 nós • Seja T com n nós internos ( n+1 nós externos )‏ • T’ é obtida de T retirando-se um nó v folha  substitui-se v e dois nós externos em T por um nó externo • T’ tem n-1 nós internos e n nós externos 7

  8. Árvore Binária de Busca • E(T’) = I(T’) + n-1 mas • I(T’) = I(T) - Lv • E(T’) = E(T) - Lv - Lv + Lv -1 então • E(T) = I(T) + n 8

  9. ABB com frequências diferenciadas • Seja S um conjunto de chaves S = {s1, s2, ..., sn } • Associado a sk • nível lk • frequência de acesso fk • Mas na busca: • intervalos R = {R0,R1, R2, ..., Rn } 9

  10. ABB com frequências diferenciadas s5 s7 s3 s2 s4 s6 s8 R2 R3 R4 R6 R8 R5 R7 s1 R1 R0 10

  11. ABB com frequências diferenciadas • Associado a Rk • nível l´k • frequência de acesso f´k 11

  12. ABB com frequências diferenciadas • Busca com sucesso a sk: • lk comparações • total de comparações de todo o processo considerando a frequência de acesso da chave? • e considerando as buscas com sucesso de todas as chaves? 12

  13. ABB com frequências diferenciadas • Busca sem sucesso – atinge um dado Rk: • l´k - 1 comparações. Por que? • total de comparações de todo o processo considerando a frequência de acesso da chave? • e considerando as buscas com sucesso de todas as chaves? 13

  14. ABB com frequências diferenciadas • Custo da ABB T(n) com frequências de acesso: comprimento do caminho interno ponderado + comprimento do caminho externo ponderado C(T) =  fk lk +  f´k (l´k -1)‏ 14

  15. ABB ponderada ótima • A ABB ótima – aquela com o custo mínimo • para achá-la: programação dinâmica sk < sk > sk T´ T” R0 ... Rk-1 Rk ... Rn 15

  16. ABB ponderada ótima • Lema: As subárvores de uma árvore binária ótima também são ótimas • prova? • Se T é ótima, T´e T” também são, conhecendo a raiz sk • como conhecer sk ? • como determinar T´e T” ? 16

  17. ABB ponderada ótima • tentar todo sk e para cada um, tentar T´e T” ? • fazer recursivamente para cada subárvore até chegar ao caso trivial • caso base: subárvore vazia – conjunto de chaves vazia 17

  18. ABB ponderada ótima • Seja T(i,j) a árvore ótima com: • chaves { si+1, ..., sj} • intervalos { Ri, ..., Rj} • Seja F(i,k) =  fk +  f´k 18

  19. ABB ponderada ótima • Lema: Seja T(i,j) a ABB ótima de raíz sk correspondentes as chaves { si+1, ..., sj}. Então: • c(T(i,j)) = c(T(i,k-1)) + (T(k,j)) + F(i,j)‏ • Prova • utilizar a função de custo ótima e separar as frequencias, considerando a raiz sk 19

  20. Construção da ABB ponderada ótima • Calcular c(T(0,n)) recursivamente • base da recursão: c(T(i,i)) = 0 • árvore vazia • mas..... • repetição de cálculos • muitas subárvores a serem testadas • exponencial? 20

  21. Construção da ABB ponderada ótima • Solução: • utilização de tabelas, para calcular o custo de cada subárvore somente uma vez • cálculo de forma não recursiva • das árvores menores para maiores • para cada subárvore T(i,j), testa-se todas as suas chaves { si+1, ..., sj} para ser candidata a raiz • escolha: a de menor custo 21

  22. Construção da ABB ponderada ótima • ABB_ótima () { for j = 0, ..., n {c[j,j] = 0; F[j,j] = f´j;} for d = 1, ..., n • for i = 0, ..., n – d { • j = i+d; • F[i,j] = F[i,j-1] + fj + f´j; • c[i,j] = min { c [i,k-1] + c [k, j]} + F[i,j]; • i<k  j } • } 22

  23. Construção da ABB ponderada ótima • Entrada 23

  24. Construção da ABB ponderada ótima 24

  25. Construção da ABB ponderada ótima 25

More Related