• Nenhum resultado encontrado

AEDS1 AULA REVISÃO PROVA 2

N/A
N/A
Protected

Academic year: 2021

Share "AEDS1 AULA REVISÃO PROVA 2"

Copied!
50
0
0

Texto

(1)

REVISÃO PROVA 2

(2)

CONCEITOS BÁSICOS

Organiza um conjunto de acordo com uma estrutura hierárquica.

Contém elementos que são chamados de nós O “pai de todos” é a raiz – 1º. da hierarquia O conteúdo de um nó pode ser de qualquer tipo que se deseje representar

As árvores da computação têm a curiosa tendência de crescer para baixo…

(3)

CONCEITOS BÁSICOS

Um único nó é uma árvore. Este nó é raiz da árvore.

Suponha que n é um nó e T1, T2, ...,Tk sejam árvores com raízes n1,n2,...,nk , respectivamente.

Podemos construir uma nova árvore tornando n a raiz e T1, T2, ...., Tk sejam subárvores da raiz. Nós n1, n2, ..., nk são chamados filhos do nó n.

(4)

ÁRVORE BINÁRIA

Uma árvore binária é um conjunto finito de elementos que está vazio ou é particionado em três subconjuntos disjuntos.

O primeiro subconjunto contém um único elemento, chamado raiz da árvore. Os outros dois subconjuntos são em si mesmos árvores binárias, chamadas subárvores esquerda e direita da árvore original.

Uma subárvore esquerda ou direita pode estar vazia.

(5)

ÁRVORE BINÁRIA DE BUSCA

Uma árvore binária de pesquisa é uma

árvore binária em que cada nó contém

uma chave de pesquisa e apresenta a

seguinte propriedade:

Cada nó da subárvore à esquerda tem

valor da chave menor que a chave do

nó;

Cada nó da subárvore à direita tem valor

da chave maior que a chave do nó.

(6)

EXEMPLO

Árvore Binária

– Cada nó tem no máximo dois filhos.

• Obs: a árvore ao lado não impõe nenhuma ordenação em seus nodos.

(7)

CAMINHO

Um caminho de ni a nk , onde ni é antecedente a nk , é a sequência de nós para se chegar de ni a nk .

Se ni é antecedente a nk , nk é descendente de ni.

(8)

OUTROS CONCEITOS

Nó que não tem antecedente: raiz;

Nós que não tem descendentes são chamados de folhas. (Os outros são os nós internos)

A altura de um nó na árvore é o caminho de maior comprimento que se pode fazer deste nó a uma folha.

A altura da árvore é a altura de sua raiz.

A profundidade de um nó é o comprimento da raiz até o nó (só existe um caminho)

(9)
(10)

PROCEDIMENTO DE INSERÇÃO NA ÁRVORE

Algoritmo de inserção de uma chave, key , em uma árvore: se a árvore é vazia: criar uma nova árvore com a nova chave;

se a chave de busca é menor que a do nó: insere na subárvore da esquerda; se a chave de busca é maior que a do nó: insere na subárvore da direita.

(11)

REMOÇÃO EM ÁRVORE

REMOÇÃO DE NÓ COM UM FILHO. REMOÇÃO DE NÓ COM DOIS FILHOS

(12)

RETIRADA DE UM ELEMENTO DA ÁRVORE

Para retirar o registro com chave 5 da árvore basta trocá-lo pelo registro com chave 4 ou pelo registro com chave 6, e então retirar o nó que recebeu o registro com chave 5.

(13)
(14)

CAMINHAMENTO EM ÁRVORE

● Diversas formas de percorrer ou caminhar em uma árvore listando seus nós, as principais:

○ Pré-ordem (Pré-fixada) ○ Central (Infixada)

○ Pós-ordem (Pós-fixada)

● Para todas elas:

○ Se T é uma árvore nula, então a lista é nula.

(15)

CAMINHAMENTO EM ÁRVORE

● PRÉ-ORDEM: Caminha visitando primeiro o nó pai então segue para o nó filho da esquerda e só então visita o nó filho da direita.

● ORDEM CENTRAL: Caminha visitando primeiro os nós mais a esquerda, depois os nós pais e então os nós a direita

● PÓS-ORDEM: Caminha visitando primeiro os nós da esquerda, depois os nós da direita e então os nós pais.

(16)

SAÍDA: 1 2 4 7 A B 3 5 6 8 C 9

(17)

CAMINHAMENTO CENTRAL

(18)

CAMINHAMENTO PÓS-ORDEM

(19)

ÁRVORE BALANCEADA

Uma árvore é balanceada se a diferença da altura de suas subárvores de qualquer nó na árvore é no máximo um.

O nome AVL vem de seus criadores soviéticos Adelson Velsky e Landis.

(20)

INSERÇÃO E REMOÇÃO

A implementação é semelhante da árvore binária de busca.

➢ inserção deve reorganizar a árvore caso fique desbalanceada após inserir um novo elemento;

➢ remoção deve reorganizar a árvore caso fique desbalanceada após remover um item.

(21)

FATOR DE BALANCEAMENTO

Para o rebalanceamento da árvore é necessário calcular o Fator de

Balanceamento (FB) para verificar qual rotação deve ser efetuada

afim de rebalanceá-la.

FB = h da subárvore direita - h da subárvore esquerda

Se FB é negativo, as rotações são feitas à direita

Se FB é positivo, as rotações são feitas à esquerda

(22)

FATOR DE BALANCEAMENTO

Cada nó numa árvore binária balanceada (AVL) tem

balanceamento de 1, -1 ou 0.

Se o valor do balanceamento do nó for diferente de 1, -1 e 0.

Essa árvore não é balanceada (AVL).

(23)

NÓ DA AVL

typedef struct no_AVL AVL; struct no_AVL {

int info;

int fb; // fator de balanceamento AVL *esq;

AVL *dir; }NODEPTR;

(24)

ALGORITMO DE BALANCEAMENTO

Algoritmo de Rotação à direita:

void rot_dir(NODEPTR p){

NODEPTR q, temp;

q = p->esq;

temp = q->dir;

q->dir = p;

p->esq = temp;

p = q;

}

24

(25)

ALGORITMO DE BALANCEAMENTO

Algoritmo de Rotação à esquerda:

void rot_esq(NODEPTR p){

NODEPTR q, temp;

q = p->dir;

temp = q->esq;

q->esq = p;

p->dir = temp;

p = q;

}

25

(26)

ALGORITMO DE BALANCEAMENTO

Algoritmo de Rotação a direita

no caso 2:

void rot_esq_dir(NODEPTR p){

rot_esq(p->esq);

rot_dir(p);

}

26

(27)

ALGORITMO DE BALANCEAMENTO

Algoritmo de Rotação à

esquerda no caso 2:

void rot_dir_esq(NODEPTR p){

rot_dir(p->dir);

rot_esq(p);

}

27

(28)

BUBBLE SORT

(29)

CÓDIGO BUBBLE SORT

Fácil implementação, maior custo computacional. Ordem de complexidade O(n²). Pior caso O(n²).

Caso Médio O(n²). Melhor Caso O(n).

(30)

SELECTION SORT

É um algoritmo de ordenação baseado em se passar sempre

o menor valor do vetor para a primeira posição (ou o maior

dependendo da ordem requerida), depois o de segundo

menor valor para a segunda posição, e assim é feito

sucessivamente com os (n-1) elementos restantes, até os

últimos dois elementos.

(31)

SELECTION SORT

31 Complexidade O(n²)

(32)

SELECTION SORT

(33)

INSERTION SORT

É um método parecido com o que se faz para ordenar

cartas, pois pega-se a segunda carta a ser ordenada e

compara com a primeira carta que foi pega, se a segunda

for menor que a primeira coloque a primeira no lugar da

segunda e a segunda no lugar da primeira e pegue a

próxima carta e compare com as anteriores e troque de

lugar com as que forem menor.

(34)

INSERTION SORT

34 Melhor Caso é O(n)

Caso médio é O(n²) Pior caso é O(n²)

(35)

INSERTION SORT

(36)

COMPARAÇÃO

36

Algoritmo Tempo

Melhor Médio Pior

Bubble sort O(n) O(n2) O(n2)

Insertion sort O(n) O(n2) O(n2)

(37)

MERGE SORT

Sua ideia básica consiste em Dividir (o problema em vários sub-problemas e resolver esses sub-problemas através da recursividade) e Conquistar (após todos os sub-problemas terem sido resolvidos ocorre a conquista que é a união das resoluções dos sub-problemas). Como o algoritmo

Merge Sort usa a recursividade, há um alto consumo de memória e tempo de execução, tornando esta

técnica não muito eficiente em alguns problemas .

Os três passos úteis dos algoritmos dividir-para-conquistar, ou divide and conquer, que se aplicam ao

merge sort são:

1. Dividir: Dividir os dados em subsequências pequenas;

2. Conquistar: Classificar as metades recursivamente aplicando o merge sort; e 3. Combinar: Juntar as metades em um único conjunto já classificado.

(38)

COMPLEXIDADE

38

Melhor Médio Pior

(39)

MERGE SORT

(40)

MERGE SORT EXERCÍCIO EXEMPLO

(41)

MERGE SORT PASSO A PASSO

(42)
(43)
(44)

MERGE SORT

(45)

QUICK SORT

O Quicksort adota a estratégia de divisão e

conquista. A estratégia consiste em rearranjar as

chaves de modo que as chaves "menores"

precedam as chaves "maiores". Em seguida o

Quicksort ordena as duas sublistas de chaves

menores e maiores recursivamente até que a

(46)

QUICK SORT

É o algoritmo mais eficiente que existe para uma grande variedade de

situações. O algoritmo é recursivo, o que demanda uma pequena

quantidade de memória adicional. Pior caso realiza O(n²) operações.

O principal cuidado a ser tomado é com relação à escolha do pivô.

A escolha do elemento do meio do arranjo melhora o desempenho quando o arquivo está total ou parcialmente ordenado .

O pior caso tem uma probabilidade muito pequena de ocorrer quando os elementos forem aleatórios.

(47)

QUICK SORT

Os passos são:

1. Escolha um elemento da lista, denominado pivô;

2. Rearranje a lista de forma que todos os elementos anteriores

ao pivô sejam menores que ele, e todos os elementos

posteriores ao pivô sejam maiores que ele. Ao fim do processo

o pivô estará em sua posição final e haverá duas sublistas não

ordenadas. Essa operação é denominada partição;

3. Recursivamente ordene a sublista dos elementos menores e a

sublista dos elementos maiores;

(48)

COMPLEXIDADE

48

Melhor Médio Pior

(49)

QUICK SORT

(50)

COMPARAÇÃO

50

Algoritmo Tempo

Melhor Médio Pior

Merge sort O(n*log(n)) O(n*log(n)) O(n*log(n))

Quick sort O(n*log(n)) O(n*log(n)) O(n2)

Bubble sort O(n) O(n2) O(n2)

Insertion sort O(n) O(n2) O(n2)

Referências

Documentos relacionados

As investigações sobre a distribuição dos knickpoints e/ou knickzones, na bacia de drenagem, sobretudo abrangendo grandes áreas, são limitadas (Hayakawa & Oguchi, 2006), em

O conjunto de high-availability Synology integra dois RackStation RC18015xs+ como nós de computação duplos e várias unidades de expansão RXD1215sas como unidades de

O Synology high-availability cluster integra dois RackStation RC18015xs+ como nódulos de computação duplos, e múltiplas Unidades de Expansão como unidades de

Nota: Para obter mais informações sobre a edição dos privilégios de acesso de um grupo às pastas compartilhadas ou aplicativos, consulte "Permitir o acesso dos usuários ou

replicação/dispositivo para dispositivo: Copie facilmente os arquivos de e para as unidades USB conectadas ou qualquer compartilhamento de rede – incluindo os locais do

desempenho, ideal para pequenas e médias empresas e empresas distribuídas para proteção de dados avançada e compartilhamento de conteúdo remoto e

Os usuários corporativos apreciarão as características robustas de proteção de dados, como os Snapshots com VSS, o EMC Atmos Cloud Connector, a desduplicação de dados EMC Avamar,

Com tecnologia de armazenamento LenovoEMC™ e até 24TB de capacidade de armazenamento, incluindo uma opção sem disco rígido, os dispositivos px6-300d são melhores, mais rápidos