Ordenamento por Borbulhagem (Bubble Sort)
|
|
|
- Ângelo Sequeira Amaral
- 10 Há anos
- Visualizações:
Transcrição
1 Operações sobre Estruturas de Dados Ordenamento de Listas Objectivo: ordenar listas de acordo com a relação gt(x, Y) Ordenamento por Borbulhagem (Bubble Sort) borbulhagem(lista, ListaOrd):- faz_trocas(lista, Lista1),!, borbulhagem(lista1, ListaOrd). borbulhagem(listaord, ListaOrd). % Alguma troca? % Se não, lista ordenada faz_trocas(lista, Lista1):- faz_trocas1(lista, Lista1, T), not var(t). faz_trocas1([ ], [ ], _). faz_trocas1([x, Y Resto], [Y Resto1], trocou):- gt(x, Y), faz_trocas1([x Resto], Resto1, _). faz_trocas1([x Resto], [X Resto1], T):- faz_trocas1(resto, Resto1, T). Amílcar Cardoso, DEI-UC P-129
2 Ordenamento por Insersão Para ordenar uma lista não-vazia [X R], (i) ordenar a cauda R e (ii) inserir X numa posição da cauda que faça [X R] ordenada ord_insersao([ ], [ ]). ord_insersao([x R], ListaOrd):- ord_insersao(r, ROrd), insere_em_ordem(x, ROrd, ListaOrd). insere_em_ordem(x, [Y R], [Y R1]):- gt(x, Y),!, insere_em_ordem(x, R, R1). insere_em_ordem(x, R, [X R]). Amílcar Cardoso, DEI-UC P-130
3 Quicksort Para ordenar uma lista não-vazia L, (i) apagar um elemento X de L e partir o resto de L em duas listas: Pequenos, contendo os elementos de L menores ou iguais a X, e Grandes, contendo os elementos de L maiores que X; (ii) ordenar Pequenos e Grandes, obtendo respectivamente PeqOrd e GrandOrd; (iii) a concatenação de PeqOrd com [X GrandOrd] resulta na lista L ordenada Apaga elemento Partição Ordenação Ordenação Concatenação Amílcar Cardoso, DEI-UC P-131
4 Um programa para o quicksort: Partição: partir(x, R, Pequena, Grande) é verdade se a Pequena é a lista contendo os elementos de R de valor inferior a X e Grande é a lista que contém os restantes elementos de R partir(_, [ ], [ ], [ ]). partir(x, [Y R], [Y Pequena], Grande):- gt(x, Y),!, partir(x, R, Pequena, Grande). partir(x, [Y R], Pequena, [Y Grande]):- partir(x, R, Pequena, Grande). Predicado central: quicksort(lista, ListaOrd). quicksort([ ], [ ]). quicksort([x R], LOrd):- partir(x, R, Pequena, Grande), quicksort(pequena, PeqOrd), quicksort(grande, GrandOrd), conc(peqord, [X GrandOrd], LOrd). Amílcar Cardoso, DEI-UC P-132
5 Recorrendo a diferença de listas: Substituições: [ ] L-L PeqOrd P-P1 GrandOrd G-G1 A concatenação de PeqOrd com [X GrandOrd] corresponde à concatenação de P-P1 com [X G]-G1, resultando P-G1, com P1 = [X G] Substituindo sistematicamente: quicksort(lista, ListaOrd):- quicksort_dl(lista, ListaOrd-[ ]). quicksort_dl([ ], L-L). quicksort_dl([x R], P-G1):- partir(x, R, Pequena, Grande), quicksort_dl(pequena, P-[X G]), quicksort_dl(grande, G-G1). Amílcar Cardoso, DEI-UC P-133
6 Mergesort Para ordenar uma lista não-vazia L, (i) dividir L em duas listas L1 e L2, de tamanhos aproximadamente iguais; (ii) ordenar L1 e L2, obtendo respectivamente Ord1 e Ord2; (iii) fundir as listas ordenadas Ord1 e Ord2, obtendo a lista L ordenada Partição Ordenação Ordenação Fusão Amílcar Cardoso, DEI-UC P-134
7 Representação de Conjuntos: Árvores Binárias Inconveniente da representação por Listas: relação de pertença ineficiente Árvore binária: ➎ composta por uma raíz, uma sub-árvore esquerda (árvore binária) e uma sub-árvore direita (árvore binária) sub-árvore esquerda b raíz a c sub-árvore direita d Necessário: um símbolo especial para representar a árvore vazia e um functor especial para construir uma árvore não-vazia a partir dos seus três componentes ➂ árvore vazia: átomo nil ➂ árvore não-vazia: t(e, R, D) representa a árvore de raíz R, subárvore esquerda E e sub-árvore direita D Exemplo, para a árvore da figura: t( t( nil, b, nil ), a, t( t( nil, d, nil ), c, nil ) ) Amílcar Cardoso, DEI-UC P-13
8 Relação de pertença - in/2: in(x, t(_, X, _)). in(x, t(e, _, _)):- in(x, E). in(x, t(_, _, D)):- in(x, D). Problema: tão ineficiente como para a representação por listas Solução: impôr uma relação de ordem aos elementos do conjunto e representá-lo por um Dicionário Binário Dicionário Binário É uma árvore binária que, se fôr não-vazia, verifica as seguintes propriedades: ➎ todos os elementos da sub-árvore esquerda são menores que a raíz ➎ todos os elementos da sub-árvore direita são maiores que a raíz ➎ ambas as sub-árvores são dicionários binários Vantagem: relação de pertença mais eficiente ❸ basta pesquisar uma das sub-árvores Amílcar Cardoso, DEI-UC P-136
9 Exemplo: Relação de pertença - in/2: in(x, t(_, X, _)). in(x, t(e, R, _)):- gt(r, X), in(x, E). in(x, t(_, _, D)):- gt(x, R), in(x, D). A relação in/2 pode também ser usada para construir um dicionário binário:?- in(, D), in(3, D), in(8, D). D = t( t( D1, 3, D2 ),, t( D3, 8, D4 ) ) 3 8 Árvore equilibrada D1 D2 D3 D4 Amílcar Cardoso, DEI-UC P-137
10 Eficiência na procura: ➂ O tempo de procura de um elemento numa árvore equilibrada com n elementos é proporcional a log n ➂ O tempo de procura de um elemento numa lista com n elementos é proporcional a n mas ➂ se a árvore não fôr equilibrada o tempo de procura aumenta ➂ na situação extrema de a árvore ser totalmente desequilibrada o tempo de procura é proporcional a n Exemplo:?- in(3, D), in(, D), in(8, D). D = t( D1, 3, t( D2,, t( D3, 8, D4 ) ) ) 3 D1 D2 8 D3 D4 Interessa garantir que as árvores são construídas de forma a manterem-se aproximadamente equilibradas Amílcar Cardoso, DEI-UC P-138
11 Insersão e Remoção num Dicionário Binário Insersão A forma de insersão mais simples é aquela em que cada novo elemento passa a constituir uma folha da árvore addleaf(d, X, D1) Configuração inicial: addleaf(d1, 6, D2) D1 D addleaf(d2, 7, D3) addleaf(d3, 4, D4) D3 D addleaf(nil, X, t(nil, X, nil)). addleaf(t(esq, X, Dir), X, t(esq, X, Dir)). addleaf(t(esq, Raiz, Dir), X, t(esq1, Raiz, Dir)):- gt(raiz, X), addleaf(esq, X, Esq1). addleaf(t(esq, Raiz, Dir), X, t(esq, Raiz, Dir1)):- gt(x, Raiz), addleaf(dir, X, Dir1). Amílcar Cardoso, DEI-UC P-139
12 Remoção A remoção de uma folha é a operação inversa da de insersão de uma folha: delleaf(d1, X, D2) :- addleaf(d2, X, D1) Remoção de um nó interno: A remover X A X? Esq Dir Esq Dir Possível solução: remover X mover Y X Y Esq Dir Esq Y Dir Esq Dir1 Se uma das sub-árvores fôr vazia: A remover X A X Esq Esq Amílcar Cardoso, DEI-UC P-140
13 Remoção de elemento de um dicionário binário: del(arvore, X, NovaArvore) del( t(nil, X, Dir), X, Dir ). del( t(esq, X, nil), X, Esq ). del( t(esq, X, Dir), X, t(esq, Y, Dir1) ):- delmin(dir, Y, Dir1). del( t(esq, Raiz, Dir), X, t(esq1, Raiz, Dir) ):- gt(raiz, X), del(esq, X, Esq1). del( t(esq, Raiz, Dir), X, t(esq, Raiz, Dir1) ):- gt(x, Raiz), del(dir, X, Dir1). Remoção do menor elemento de um dicionário binário: delmin(arvore, Y, NovaArvore) delmin( t(nil, Y, Dir), Y, Dir ). delmin( t(esq, Raiz, Dir), Y, t(esq1, Raiz, Dir) ):- delmin(esq, Y, Esq1). Amílcar Cardoso, DEI-UC P-141
14 Insersão não-determinística: O novo nó é inserido num nível qualquer da árvore Para inserir X num dicionário binário D, (i) inserir X na raíz de D (X passa a ser a nova raíz de D) ou (ii) se a raíz de D é maior que X, insere X na sub-árvore esquerda de D; caso contrário, insere X na sub-árvore direita de D Problema: insersão na raíz ❸ addroot(arvore, X NovaArvore) Y inserir X, X < Y Esq Dir inserir X, Y < X X X Esq1 Y Y Dir2 Esq2 Dir Esq Dir1 addroot( nil, X, t(nil, X, nil) ). addroot( t(esq, Y, Dir), X, t(esq1, X, t(esq2, Y, Dir)) ):- gt(y, X), addroot(esq, X, t(esq1, X, Esq2)). addroot( t(esq, Y, Dir), X, t( t(esq, Y, Dir1), X, Dir2) ):- gt(x, Y), addroot(dir, X, t(dir1, X, Dir2)). Amílcar Cardoso, DEI-UC P-142
15 Insersão não-determinística num dicionário binário: add(arvore, X, NovaArvore) add(arvore, X, NovaArvore):- addroot(arvore, X, NovaArvore). add( t(esq, Raiz, Dir), X, t(esq1, Raiz, Dir) ):- gt(raiz, X), add(esq, X, Esq1). add( t(esq, Raiz, Dir), X, t(esq, Raiz, Dir1) ):- gt(x, Raiz), add(dir, X, Dir1). Notar a semelhança com del/3, para remoção de elemento de um dicionário binário Na verdade, este predicado pode ser utilizado na direcção inversa, para apagar um elemento do dicionário Por exemplo: add(nil, 3, D1), add(d1,, D2), add(d2, 1, D), add(dd,, D) constrói uma árvore D contendo os elementos 1, 3 e, removendo depois para produzir a árvore DD Amílcar Cardoso, DEI-UC P-143
Pedro Vasconcelos DCC/FCUP. Programação Funcional 15 a Aula Árvores de pesquisa
Programação Funcional 15 a Aula Árvores de pesquisa Pedro Vasconcelos DCC/FCUP 2014 Árvores binárias Um árvore binária é um grafo dirigido, conexo e acíclico em que cada vértice é de um de dois tipos:
Pesquisa em Memória Primária. Algoritmos e Estruturas de Dados II
Pesquisa em Memória Primária Algoritmos e Estruturas de Dados II Pesquisa em Memória Primária Pesquisa: Recuperação de informação em um grande volume de dados Informação é dividida em registros e cada
EAD Árvore - representação usando listas ligadas
4.1. Definição É uma árvore binária em que os seus nodos têm associado uma chave, que - determina a sua posição de colocação na árvore e - obedece às seguintes regras: a chave de um nodo é - maior do que
Árvores. Algoritmos e Estruturas de Dados 2005/2006
Árvores Algoritmos e Estruturas de Dados 2005/2006 Árvores Conjunto de nós e conjunto de arestas que ligam pares de nós Um nó é a raiz Com excepção da raiz, todo o nó está ligado por uma aresta a 1 e 1
Árvore Binária de Busca
Árvore Binária de Busca 319 Árvore Binária de Busca! construída de tal forma que, para cada nó:! nós com chaves menores estão na sub-árvore esquerda! nós com chaves maiores (ou iguais) estão na subárvore
Árvores Binárias de Busca
Árvores Binárias de Busca Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguinte propriedade: Para todo nó da árvore, se seu valor é X, então: Os nós pertencentes
ESTRUTURAS DE DADOS II MSc. Daniele Carvalho Oliveira
ESTRUTURAS DE DADOS II MSc. Daniele Carvalho Oliveira ÁRVORES ED2: MSc. Daniele Oliveira 2 Introdução Filas, pilhas» Estruturas Lineares Um dos exemplos mais significativos de estruturas não-lineares são
Algoritmos e Estruturas de Dados 2
Algoritmos e Estruturas de Dados 2 Unidade 1: Árvores binárias Rafael Beserra Gomes Universidade Federal do Rio Grande do Norte Material compilado em 21 de fevereiro de 201. Licença desta apresentação:
EAD Árvore árvore binária
EAD Árvore árvore binária - Uma árvore binária é um conjunto finito de elementos (nodos) que pode ser vazio ou particionado em três subconjuntos: - raiz da árvore (elemento inicial, que é único); - subárvore
Métodos Computacionais. Árvores
Métodos Computacionais Árvores Árvores Vetores e Listas são ótimos para representar estrutura de dados lineares, mas não para modelar dados hierárquicos Exemplos de dados hierárquicos: sistema de arquivos
ÁRVORES BINÁRIAS DE PESQUISA
ÁRVORES BINÁRIAS DE PESQUISA Árvores binárias de pesquisa são uma estrutura alternativa do tipo árvore binária, para guardar valores de tal forma que a recuperação dos mesmos pode ser efectuada de forma
INF1007 - PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 15
INF1007 - PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 15 1. Um número racional é expresso por dois inteiros: um numerador e um denominador (este último diferente de zero!). Implemente um TAD para representar números
Estruturas de Dados I
UFES - Curso de verão 2011 Estruturas de Dados I Profa. Juliana Pinheiro Campos [email protected] Árvores binárias de busca (ou São árvores projetadas para dar suporte a operações de busca de forma eficiente.
B D. Árvores Ordenadas
ÈUYRUHV 'HILQLomR Uma árvore 7 é um conjunto finito contendo um ou mais nós (vértices), onde existe um nó especial denominado UDL] e os demais estão organizados em 1 conjuntos disjuntos (T 1, T 2,...,
{ fazer Pós-Ordem sem recursividade. Poderá cair na prova!!! }
1 Instituto Luterano de Ensino Superior de Ji-Paraná Curso Bacharelado em Informática Prof.: José Luiz A. Duizith A B D.. C E. E C Pré: A B C D E B In : B C A E D D Pos: C B E D A A Usando Pilha Procedimento
INF 1007 Programação II
INF 1007 Programação II Aula 14 Árvores Binárias Edirlei Soares de Lima Árvores Uma estrutura de dados do tipo árvore permite que dados sejam organizados de maneira hierárquica.
ALGORITMOS E ESTRUTURAS DE DADOS CES-11 CES-11 CES-11
ALGORITMOS E ESTRUTURAS DE DADOS Prof. Paulo André Castro [email protected] Sala 110 Prédio da Computação www.comp.ita.br/~pauloac IECE - ITA Uma árvore binária é: uma árvore vazia; ou uma árvore onde qualquer
Árvores Binárias de Busca
Árvores Binárias de Busca Uma Árvore Binária de Busca T (ABB) ou Árvore Binária de Pesquisa é tal que ou T = 0 e a árvore é dita vazia ou seu nó contém uma chave e: 1. Todas as chaves da sub-árvore esquerda
Estruturas de Dados. Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos
Estruturas de Dados Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos Árvores Conceitos Árvores binárias Árvores binárias de pesquisa Árvores binárias balanceadas Árvores ESTRUTURAS
Linguagem C: Árvores Binarias
Instituto de C Linguagem C: Árvores Binarias Luis Martí Instituto de Computação Universidade Federal Fluminense [email protected] - http://lmarti.com Tópicos Principais Introdução Árvores binárias Implementação
Busca. Pesquisa sequencial
Busca Banco de dados existem para que, de tempos em tempos, um usuário possa localizar o dado de um registro, simplesmente digitando sua chave. Uma tabela ou um arquivo é um grupo de elementos, cada um
INF1007: Programação 2 10 Árvores Binárias. (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 10 Árvores Binárias (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Introdução Árvores binárias Representação em C Ordens de percurso em árvores binárias Altura de uma árvore
Árvores B + Prof Márcio Bueno. [email protected] / [email protected]. Material da Prof a Ana Eliza Lopes Moura
Árvores B + Prof Márcio Bueno [email protected] / [email protected] Material da Prof a Ana Eliza Lopes Moura Árvore B + A árvore B + é uma variação da estrutura básica da árvore B. Características:
FACULDADE DE IMPERATRIZ - FACIMP BACHARELADO EM SISTEMAS DE INFORMAÇÃO ESTRUTURA DE DADOS 2. Vieira Lima Junior. Everson Santos Araujo
1 FACULDADE DE IMPERATRIZ - FACIMP BACHARELADO EM SISTEMAS DE INFORMAÇÃO ESTRUTURA DE DADOS 2 Vieira Lima Junior Everson Santos Araujo ALGORITMOS DE ORDENAÇÃO: estudo comparativo de diversos algoritmos
Pesquisa digital. Algoritmos e Estruturas de Dados II
Pesquisa digital Algoritmos e Estruturas de Dados II Pesquisa digital A pesquisa digital usa a representação das chaves para estruturar os dados na memória Por exemplo, a representação de um número em
6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto
Capítulo 6. Autômatos com Pilha 6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto Nos exemplos da seção anterior, vimos que os autômatos com pilha existem para
Árvores AVL. Prof. Othon M. N. Batista Estrutura de Dados
Árvores AVL Prof. Othon M. N. Batista Estrutura de Dados Roteiro (/2) Árvore Binária de Pesquisa - Pior Tempo ABP Balanceada e Não Balanceada Balanceamento de Árvores Balanceamento de ABP Balanceamento
Árvores Binárias e Busca. Jeane Melo
Árvores Binárias e Busca Jeane Melo Roteiro Parte 1 Árvores Relação hierárquica Definição Formal Terminologia Caminhamento em Árvores Binárias Exemplos Parte 2 Busca seqüencial Busca Binária Grafos Conjunto
Árvores Binárias - continuação
Tópicos Avançados em Estrutura de Dados 6º Período Ciência da Computação Uma Aplicação de Árvores Binárias Árvores Binárias - continuação As árvore binárias são estruturas importantes toda vez que uma
Árvore Binária de Busca. Algoritmos e Estrutura de Dados II. Operações Busca e Sucessor. Árvore Binária de Busca. Árvores Rubro-Negras
Árvore Binária de Busca Algoritmos e Estrutura de Dados II Árvores Rubro-Negras Prof. Marco Aurélio Stefanes marco em dct.ufms.br Propriedades Se está na subárvore esquerda de então chave() chave() Se
Algoritmos e Estrutura de Dados III. Árvores
Algoritmos e Estrutura de Dados III Árvores Uma das mais importantes classes de estruturas de dados em computação são as árvores. Aproveitando-se de sua organização hierárquica, muitas aplicações são realizadas
Recursão em Listas. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de Programação Funcional
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de Programação Funcional Recursão em Listas Dica: Resolva todos os exercícios sem utilizar o computador. Uma
ESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres
ESTRUTURA DE DADOS E ALGORITMOS Árvores Binárias de Busca Cristina Boeres Árvore Binária de Busca 30! construída de tal forma que, para cada nó: nós com chaves menores estão na sub-árvore esquerda nós
Ordenação: HeapSort. Prof. Túlio Toffolo BCC202 Aula 17 Algoritmos e Estruturas de Dados I
2014-01 Aula 16 Fila de Prioridade / HeapSort Adaptado por Reinaldo Fortes para o curso de 2014-01 Arquivo original: Aula 17: HeapSort Ordenação: HeapSort Prof. Túlio Toffolo http://www.toffolo.com.br
1. Introdução... 1 1.1. Definição... 1 1.2. Conceitos relacionados... 2
Índice i Índice Capítulo 4 Estrutura de Dados não sequencial com armazenamento não sequencial ( Árvore ) 1. Introdução... 1 1.1. Definição... 1 1.2. Conceitos relacionados... 2 2. Árvores binárias... 2
ALGORITMOS DE ORDENAÇÃO. Algoritmos de comparação-e-troca. Bubble Sort Merge Sort Quick Sort
ALGORITMOS DE ORDENAÇÃO ALGORITMOS DE ORDENAÇÃO Algoritmos de comparação-e-troca Bubble Sort Merge Sort Quick Sort 1 BUBBLE SORT Usa a estratégia de comparação-e-troca É constituído por várias fases Cada
Instituto Superior Técnico. 19 de Janeiro de 2001. Parte I
Exame de Compressão e Codificação de Dados Secção de Telecomunicacções DEEC, Instituto Superior Técnico 19 de Janeiro de 1 Parte I Esta parte do exame é constituida por 20 perguntas de resposta múltipla.
1. Sistemas de numeração
1. Sistemas de numeração Quando mencionamos sistemas de numeração estamos nos referindo à utilização de um sistema para representar uma numeração, ou seja, uma quantidade. Sistematizar algo seria organizar,
BC1424 Algoritmos e Estruturas de Dados I. Aula 16: Árvores (introdução) Prof. Jesús P. Mena-Chalco. [email protected]
BC1424 Algoritmos e Estruturas de Dados I Aula 16: Árvores (introdução) Prof. Jesús P. Mena-Chalco [email protected] 1Q-2015 1 2 Árvores Uma árvore é uma estrutura de dados mais geral que uma lista
CT-234. Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches
CT-234 Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural Carlos Alberto Alonso Sanches CT-234 4) Árvores balanceadas AVL, Rubro-Negras, B-Trees Operações em árvores binárias de busca
Árvore B UNITINS ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 3º PERÍODO 43
AULA A 3 ESTRUTURA RA DE DADOS Árvore B Esperamos que, ao final desta aula, você seja capaz de: identificar as vantagens da árvore B em relação às árvores binária de busca e AVL; conhecer as funções de
PROGRAMAÇÃO II 4. ÁRVORE
4. ÁRVORE PROGRAMAÇÃO II Prof. Jean Eduardo Glazar Uma árvore impõe uma estrutura hierárquica em uma coleção de itens. Um exemplo familiar é a árvore genealógica. Árvores despontam de forma natural em
Árvores Binárias. Observação: Material elaborado a partir do material do Professor Marcos Costa.
Árvores Binárias Observação: Material elaborado a partir do material do Professor Marcos Costa. Árvores Binárias Árvore binária é definida como um conjunto finito de nós que Ou está vazio Ou consiste de
Conversões em Sistemas de Numeração. José Gustavo de Souza Paiva
Conversões em Sistemas de Numeração José Gustavo de Souza Paiva 1 Conversões entre bases que são potências entre si Primeiro caso base binária para base octal Como 2 3 = 8, podemos separar os bits de um
- UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação
Programação 1I Prof. Osório Árvores Binárias Pag.: 1 - UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação Programação II Disciplina: Linguagem
Linguagem Haskell. Maria Adriana Vidigal de Lima
em Haskell Linguagem Haskell Faculdade de Computação - UFU Dezembro - 2009 em Haskell 1 em Haskell Noções sobre Fundamentos em Haskell Noções sobre Uma árvore é uma estrutura de dados baseada em listas
Árvores Balanceadas. Árvore binária completamente balanceada. Ocorre quando a árvore está cheia ou quase cheia com o nível n-1 completo
Árvores Balanceadas As árvores binárias de pesquisa são, em alguns casos, pouco recomendáveis para as operações básicas (inserção, remoção e busca) Árvores binárias de pesquisa degeneradas tornam as operações
Estruturas de Dados Árvores
Estruturas de Dados Árvores Prof. Eduardo Alchieri Árvores (introdução) Importância de estruturas unidimensionais ou lineares (vetores e listas) é inegável Porém, estas estruturas não são adequadas para
ESTRUTURA DE DADOS DCC013
ESTRUTURA DE DADOS DCC013 Árvores Pesquisa sequencial Preliminares Elementos pesquisados sucessivamente Comparação determina se o elemento foi encontrado ou não Exemplo: buscar 4 (Arrays e lista encadeada)
Programação em Lógica com Restrições Exame sem consulta - Duração: 3 horas
DI-FCT/UNL 17 de Junho de 2010 Programação em Lógica com Restrições Exame sem consulta - Duração: 3 horas N º : Nome: Grupo 1 (4 valores) 1 a) Para cada um dos seguintes golos, indique se sucede (com V,
Pedro Vasconcelos DCC/FCUP. Programação Funcional 14 a Aula Tipos abstratos de dados
Programação Funcional 14 a Aula Tipos abstratos de dados Pedro Vasconcelos DCC/FCUP 2012 Tipos concretos de dados Até agora definimos um novo tipo de dados listamos os seus construtores. data Bool = False
Estruturas de Dados Pilhas, Filas e Deques
Estruturas de Dados Pilhas, Filas e Deques Prof. Eduardo Alchieri Estruturas de Dados Pilhas Pilhas Lista LIFO (Last In, First Out) Os elementos são colocados na estrutura (pilha) e retirados em ordem
EXERCÍCIOS DE LÓGICA DE 1ª ORDEM
QUANTIFICADORES EXERCÍCIOS DE LÓGICA DE 1ª ORDEM 1 {9.3} Tornar as frases verdadeiras. Abra Bozo s Sentences e Leibniz s World. Algumas das expressões não são wffs, algumas são wffs mas não são frases
Estruturas de Dados. Árvores AVL. Cesar Tadeu Pozzer. [email protected], [email protected]. Curso de Ciência da Computação UFSM (12/12/2007)
struturas de ados Árvores VL esar Tadeu Pozzer [email protected], [email protected] urso de iência da omputação UFSM (12/12/2007) Árvore VL Uma árvore binária é denominada VL quando a diferença de altura
Engenharia de Software e Sistemas Distribuídos. Enunciado Geral do Projecto
LEIC-A, LEIC-T, LETI, MEIC-T, MEIC-A Engenharia de Software e Sistemas Distribuídos 2 o Semestre 2014/2015 Enunciado Geral do Projecto O que se segue é uma descrição geral do domínio do projecto a desenvolver
QUESTÃO 1 ALTERNATIVA B
1 QUESTÃO 1 Marcos tem 10 0,25 = 2,50 reais em moedas de 25 centavos. Logo ele tem 4,30 2,50 = 1,80 reais em moedas de 10 centavos, ou seja, ele tem 1,80 0,10 = 18 moedas de 10 centavos. Outra maneira
Árvores Binárias Balanceadas
Árvores Binárias Balanceadas Elisa Maria Pivetta Cantarelli Árvores Balanceadas Uma árvore é dita balanceada quando as suas subárvores à esquerda e à direita possuem a mesma altura. Todos os links vazios
INE5408 Estruturas de Dados
INE5408 Estruturas de Dados - Características - Rotações Árvores AVL Características Manter uma árvore binária de busca balanceada sob a presença de constantes inserções e deleções é ineficiente. Para
FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2
FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO Projeto e Análise de Algoritmos II Lista de Exercícios 2 Prof. Osvaldo. 1. Desenvolva algoritmos para as operações abaixo e calcule a complexidade
Árvores binárias de busca
Árvores binárias de busca SCC-214 Projeto de Algoritmos Thiago A. S. Pardo Árvore binárias Árvores de grau 2, isto é, cada nó tem dois filhos, no máximo Raiz D B A E C F Terminologia: filho esquerdo filho
Breve referência à Teoria de Anéis. Álgebra (Curso de CC) Ano lectivo 2005/2006 191 / 204
Breve referência à Teoria de Anéis Álgebra (Curso de CC) Ano lectivo 2005/2006 191 / 204 Anéis Há muitos conjuntos, como é o caso dos inteiros, dos inteiros módulo n ou dos números reais, que consideramos
Filas COMANDOS EM C++ PARA IMPLEMENTAÇÃO DE UMA FILA. Biblioteca padrão <queue>
Filas Uma fila é uma lista linear em que as inserções são realizadas num extremo, ficando as remoções restritas a outro. palavra da língua inglesa, significa fila. Por tradição, as duas operações básicas
ESTRUTURA DE DADOS DCC013. Árvore Binária de Busca
ESTRUTURA DE DADOS DCC013 Árvore Binária de Busca Árvore Binária de Busca Propriedade fundamental da árvore binária de busca Valor da chave da raiz é Maior do que o valor da chave da subárvore da esquerda
Estrutura de Dados Árvores. Prof. Robinson Alves
Estrutura de Dados Árvores Prof. Robinson Alves O que é uma árvore Em Computação, é um modelo abstrato de uma estrutura hierárquica Uma árvore consiste de nós com uma relação pai-filho Brasil Vendas Internacional
Árvore - Introdução. Teoria dos Grafos. Árvore Livre. Árvore Enraizada. Algumas Definições. Algumas Definições
Árvore - Introdução Árvores Em nosso dia-a-dia nos deparamos com muitos exemplos de árvores: Árvore genealógica. Organograma de uma empresa. Tabela de um torneio esportivo. Na computação: Organização da
Projecto de Implementação da. Modelo 11
Projecto de Implementação da Reforma da Tributação do Património Modelo 11 MANUAL DO UTILIZADOR VERSÃO 1.0 DGITA Lisboa, 2004 ÍNDICE 1 INTRODUÇÃO... 2 1.1 Principais Funcionalidades da Aplicação...2 1.2
Sistemas de Numerações.
Matemática Profº: Carlos Roberto da Silva; Lourival Pereira Martins. Sistema de numeração: Binário, Octal, Decimal, Hexadecimal; Sistema de numeração: Conversões; Sistemas de Numerações. Nosso sistema
Mo:vação. Árvore AVL. Caracterís:cas. Origem. Exemplo. Exercício 1 Qual é a altura dos nodos 50 e 44?
Mo:vação Árvore AVL Árvores binárias de Pesquisa possuem uma tendência natural de desbalancear 1 2 Rohit Gheyi [email protected] 6 8 1 2 Origem Adelson Velskii, G.; E. M. Landis (1962). "An algorithm
Cenários do CEL. Acessar ao sistema
Cenários do CEL Acessar ao sistema Permitir que o usuário acesse ao Sistema de Léxicos e Cenários nas seguintes condições: logando-se, quando já estiver cadastrado; ou incluindo usuário independente, quando
2006/2007 Análise e Síntese de Algoritmos 2
Análise e Síntese de Algoritmos Árvores Abrangentes de Menor Custo CLRS, Cap. 23 Resumo Árvores Abrangentes de Menor Custo Minimum-Spanning Trees (MSTs) Algoritmo (greedy) genérico Prova de optimalidade
Ficha de Trabalho. 1. Inserção de Dados
. Inserção de Dados A B C D E F G H Olá 00 Descalça vai para a fonte 00, Descalça vai p x 00. Descalça vai p.. + A+A ##### - =+. Preencha as células B:B com os conteúdos sugeridos no Quadro. Para cada
Figura 13.1: Um exemplo de árvore de diretório.
13. Árvores W. Celes e J. L. Rangel Nos capítulos anteriores examinamos as estruturas de dados que podem ser chamadas de unidimensionais ou lineares, como vetores e listas. A importância dessas estruturas
Tarefa Orientada 17 Listas de dados
Tarefa Orientada 17 Listas de dados Estudo prático da folha de cálculo Excel - Gestão de listas como base de dados. Conceitos teóricos Lista Série de linhas da folha de cálculo que contém dados relacionados,
RELAÇÕES BINÁRIAS Produto Cartesiano A X B
RELAÇÕES BINÁRIAS PARES ORDENADOS Um PAR ORDENADO, denotado por (x,y), é um par de elementos onde x é o Primeiro elemento e y é o Segundo elemento do par A ordem é relevante em um par ordenado Logo, os
Curso : Tecnologia em Desenvolvimento de Sistemas - AEMS
Curso : Tecnologia em Desenvolvimento de Sistemas - AEMS Série : 3 º Período - 1 º Semestre de 2011 Professora : Elzi Ap. Gil 3. LISTAS LINEARES PARTE - III Disciplina - Estrutura de Dados Segundo Pereira(2002),
Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de
Escola Secundária c/3º CEB José Macedo Fragateiro Curso Profissional de Nível Secundário Componente Técnica Disciplina de Sistemas Digitais e Arquitectura de Computadores 29/21 Módulo 1: Sistemas de Numeração
Sistemas de Numeração. 1 Introdução aos sistemas numeração
Sistemas de Numeração 1 Introdução aos sistemas numeração Sistemas de Numeração Base Decimal Base Binária Base Octal Base Hexadecimal Sistemas de numeração ria\base Oct tal\ Base He exadecimal l\base Biná
Árvores Rubro-Negras. Árvores Rubro-Negras. (Vermelho-Preta) Estrutura da Árvore. Estrutura da Árvore
Árvores Rubro-Negras Árvores Rubro-Negras (Vermelho-Preta) Árvore Binária de Pesquisa (ABP) com nodos coloridos de vermelho e preto Árvore balanceada Qualquer caminho da raiz até as folhas, nenhum caminho
ESTRUTURAS DE DADOS AVANÇADAS (INF 1010) (a) Seja um TAD definido por uma lista circular implementada em um vetor.
PUC-Rio Departamento de Informática Período: 2015.1 Horário: 2as-feiras e 4as-feiras de 17-19 30 de março de 2015 ESTRUTURAS DE DADOS AVANÇADAS (INF 1010) 1 a Lista de Exercícios 1. Lista (a) Seja um TAD
FILAS DE PRIORIDADE e HEAPS
FILAS DE PRIORIDADE e HEAPS Já estudamos a estrutura fila que fornece os elementos segundo um critério FIFO, da fila removese o elemento mais antigo. Acontece em algumas aplicações que necessitamos de
ESTRUTURAS DE DADOS II
ESTRUTURAS DE DADOS II Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação - UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação - UFJF Conteúdo Programático 1. Introdução
3. Sistemas de Numeração
. Sistemas de Numeração Sistemas de numeração são mecanismos usados para numerar determinados eventos, através de uma lei de formação. Todos os sistemas que a seguir terão como referência o sistema DECIMAL
Catálogo Nacional de Compras Públicas. Manual de Fornecedores
10 de Julho de 2009 Índice 1. Introdução... 3 1.1. Objectivo... 3 2. Fornecedor... 4 2.1. AQs/CPAs... 4 2.2. Contratos... 4 2.3. Grupos AQ/CPA... 5 3. Carregamento e Actualização do Catálogo... 7 3.1.
Organização e Arquitetura de Computadores. Aula 10 Ponto Flutuante Parte I. 2002 Juliana F. Camapum Wanderley
Organização e Arquitetura de Computadores Aula 10 Ponto Flutuante Parte I 2002 Juliana F. Camapum Wanderley http://www.cic.unb.br/docentes/juliana/cursos/oac OAC Ponto Flutuante Parte I - 1 Panorama Números
Pesquisa Sequencial e Binária
Pesquisa Sequencial e Binária Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 20 Algoritmos e Estruturas de Dados I Pesquisa em Memória Primária Introdução - Conceitos Básicos Pesquisa Sequencial
Teoria dos Grafos. Edson Prestes
Edson Prestes Grafos Cliques Maximais Para determinar os cliques maximais de um grafo G podemos usar o método de Maghout em Dado o grafo abaixo, calcule Determine os conjuntos independentes maximais em
BCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 13: Ordenação: MergeSort Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes Email: [email protected]
Aula T20 BCC202 Pesquisa (Parte 2) Árvores de Pesquisa. Túlio Toffolo www.decom.ufop.br/toffolo
Aula T20 BCC202 Pesquisa (Parte 2) Árvores de Pesquisa Túlio Toffolo www.decom.ufop.br/toffolo Árvore AVL n Árvore binária de busca tal que, para qualquer nó interno v, a diferença das alturas dos filhos
Estruturas de Dados Aula 15: Árvores 17/05/2011
Estruturas de Dados Aula 15: Árvores 17/05/2011 Fontes Bibliográficas Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos (Nivio Ziviani): Capítulo
ÁRVORE AVL. Problema do balanceamento
ÁRVORE VL Prof. ndré ackes Problema do balanceamento 2 eficiência da busca em uma árvore binária depende do seu balanceamento. O(log N), se a árvore está balanceada O(N), se a árvore não está balanceada
