Pesquisa Linear. Adriano J. Holanda 15/3/2016

Tamanho: px
Começar a partir da página:

Download "Pesquisa Linear. Adriano J. Holanda 15/3/2016"

Transcrição

1 Pesquisa Linear Adriano J. Holanda 15/3/2016

2 Busca Linear em memória principal Introdução O dados estarão sempre armazenados na memória principal (DRAM 1 ): não há necessidade de acesso à memória secundária (disco rígido, DVD, CD, pendrive,...); O termo registro é utilizado para armazenar a informação, sendo identificado a partir de uma chave k; Dada uma chave k, esta chave deve ser única para no conjunto de registros; Os registros são armazenados em tabela ou arquivo, onde tabela é usualmente usada para indicar um arquivo pequeno, e arquivo é utilizado para indicar uma tabela grande; Um conjunto de arquivos é comumente chamado de banco de dados. 1 Dynamic Random Access Memory memória de acesso aleatório dinâmica

3 Busca Linear em memória principal Introdução O dados estarão sempre armazenados na memória principal (DRAM 1 ): não há necessidade de acesso à memória secundária (disco rígido, DVD, CD, pendrive,...); O termo registro é utilizado para armazenar a informação, sendo identificado a partir de uma chave k; Dada uma chave k, esta chave deve ser única para no conjunto de registros; Os registros são armazenados em tabela ou arquivo, onde tabela é usualmente usada para indicar um arquivo pequeno, e arquivo é utilizado para indicar uma tabela grande; Um conjunto de arquivos é comumente chamado de banco de dados. 1 Dynamic Random Access Memory memória de acesso aleatório dinâmica

4 Busca Linear em memória principal Introdução O dados estarão sempre armazenados na memória principal (DRAM 1 ): não há necessidade de acesso à memória secundária (disco rígido, DVD, CD, pendrive,...); O termo registro é utilizado para armazenar a informação, sendo identificado a partir de uma chave k; Dada uma chave k, esta chave deve ser única para no conjunto de registros; Os registros são armazenados em tabela ou arquivo, onde tabela é usualmente usada para indicar um arquivo pequeno, e arquivo é utilizado para indicar uma tabela grande; Um conjunto de arquivos é comumente chamado de banco de dados. 1 Dynamic Random Access Memory memória de acesso aleatório dinâmica

5 Busca Linear em memória principal Introdução O dados estarão sempre armazenados na memória principal (DRAM 1 ): não há necessidade de acesso à memória secundária (disco rígido, DVD, CD, pendrive,...); O termo registro é utilizado para armazenar a informação, sendo identificado a partir de uma chave k; Dada uma chave k, esta chave deve ser única para no conjunto de registros; Os registros são armazenados em tabela ou arquivo, onde tabela é usualmente usada para indicar um arquivo pequeno, e arquivo é utilizado para indicar uma tabela grande; Um conjunto de arquivos é comumente chamado de banco de dados. 1 Dynamic Random Access Memory memória de acesso aleatório dinâmica

6 Busca Linear em memória principal Introdução O dados estarão sempre armazenados na memória principal (DRAM 1 ): não há necessidade de acesso à memória secundária (disco rígido, DVD, CD, pendrive,...); O termo registro é utilizado para armazenar a informação, sendo identificado a partir de uma chave k; Dada uma chave k, esta chave deve ser única para no conjunto de registros; Os registros são armazenados em tabela ou arquivo, onde tabela é usualmente usada para indicar um arquivo pequeno, e arquivo é utilizado para indicar uma tabela grande; Um conjunto de arquivos é comumente chamado de banco de dados. 1 Dynamic Random Access Memory memória de acesso aleatório dinâmica

7 Busca Linear Aplicações Tabela de funções: Dada uma tabela da função f (x) e dado um x, achar o valor da função f ; Tradutor: dada uma palavra w em português, buscar a(s) palavra(equivalente) em inglês.

8 Busca Linear Aplicações Tabela de funções: Dada uma tabela da função f (x) e dado um x, achar o valor da função f ; Tradutor: dada uma palavra w em português, buscar a(s) palavra(equivalente) em inglês.

9 Tipo abstrato de dados: Registro 1 typedef union _info { 2 int I ; /* inteiro */ 3 long L; /* inteiro longo */ 4 float F; /* ponto flutuante de precisao unica */ 5 double D; /* ponto flutuante de dupla precisao */ 6 char *S; /* string */ 7 char *P; /* ponteiro */ 8 } Info ; /* Informacao */ 1 typedef struct _registro { 2 long chave; /* identificacao do registro */ 3 Info info ; /* informacao associada a chave */ 4 } Registro ;

10 Busca sequencial simples: fluxograma Não S0. Inicializa S1. Compara S2. Avança S3. Fim do arquivo? = Sim SUCESSO FALHA

11 Busca sequencial simples: programa 1 /* Esta funcao recebe um vetor v[0..n 1] com N > 1 e um 2 inteiro k. Ela retorna um indice i em 0..N 1 se a busca for 3 bem sucedida, e retorna 1 em caso de falha na busca. */ 4 int BuscaSequencialS(int k, int N, int v []) 5 { 6 int i ; 7 for ( /* S0 */ i = 0; i < N; /* S2 */ i++) { 8 if (v[ i ] == k) /* S1 */ 9 return i ; /* SUCESSO */ 10 } 11 /* S3 */ 12 return 1; /* FALHA */ 13 }

12 Busca sequencial simples: desempenho Melhor caso: C N = 1, a chave está na primeira posição da tabela; Pior caso: C N = N, a chave não se encontra na tabela; Média: C N = N N = N+1 2 onde C N é o número de comparações em um conjunto (tabela) com N elementos.

13 Pesquisa Binária Adriano J. Holanda 15/3/2016

14 Pesquisa Binária A busca binária é mais eficiente que a sequencial. Intuitivamente, ela baseia-se no método que utilizamos para buscar uma palavra em um dicionário. Problema Verificar se o vetor ordenado v[0..n 1] contém a chave k quando N = 0, v (vazio). v[0] v[1] v[1]... v[n 1] Quando e > d = k v[0..n 1], caso contrário 0 m N 1 k = v[m]. Inicialmente, a faixa é representada por e 1 (índice a esquerda) e d = N (índice a direta), e a cada iteração m = (e+d) 2.

15 Desafio Descreva o algoritmo (utilizando qualquer notação), implemente-o usando C, análise seu desempenho (complexidade) e correção.

16 Busca binária: algoritmo Dada uma tabela de registros R 0, R1,..., R N 1 cujas chaves estão em ordem crescente k 0, k 1,..., k N 1, este algoritmo por um dado argumento k. B0. [Inicializa. ] Atribui e 1, d N. B1. [Calcula o ponto médio. ] Se e > d, o algoritmo termina com falha. Caso contrário, atribua m (e + d)/2, o meio aproximado da área relevante da tabela. B2. [Compara. ] Se k < k m, vá para B3; se k > k m, vá para B4; e se k = k m, o algoritmo termina com sucesso. B3. [Ajusta d. ] Atribua d m 1 e retorne para B1. B4. [Ajusta e. ] Atribua e m + 1 e retorne para B1.

17 Busca binária: implementação 1 /* Esta funcao recebe um vetor crescente v[0..n 1] 2 com N 1 e um inteiro k. Ela retorna um indice 3 i em 0 i N 1, se a chave for encontrada, 4 caso contrario retorna 1. */ 5 int BuscaBinaria(int k, int N, int v []) 6 { 7 int e, m, d; /* esquerda, meio, direita */ 8 e = 1; 9 d = N; 10 while (e <= d) { 11 m = e + (d e) / 2; /* evita estouro de capacidade do tipo */ 12 if (k > v[m]) 13 e = m + 1; 14 else if (k < v[m]) 15 d = m 1; 16 else 17 return m; 18 } 19 return 1; 20 }

18 Busca binária: desempenho Número de comparações: log 2 N

19 Leitura Adicional Jaime Luis Szwarcfiter e Lilian Markenzon. Estruturas de Dados e seus Algorítmos. Editora LTC, Paulo Feofiloff. Algorítmos em Linguagem C. Editora Campus, Aaron M. Tenenbaum, Yedidyah Langsam e Moshe J. Augenstein. Estrutura de Dados usando C. Editora Pearson, 2005.

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Campus Curitiba PLANO DE ENSINO

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Campus Curitiba PLANO DE ENSINO Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Curitiba PLANO DE ENSINO CURSO Engenharia Mecânica? MATRIZ FUNDAMENTAÇÃO LEGAL (Resolução do COEPP que aprovou a matriz curricular

Leia mais

Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária. Túlio Toffolo

Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária. Túlio Toffolo Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária Túlio Toffolo www.decom.ufop.br/toffolo Pesquisa em Memória Primária n Introdução - Conceitos Básicos n Pesquisa Sequencial n Pesquisa Binária n Árvores

Leia mais

ÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

ÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ÁRVORES BINÁRIAS DE BUSCA Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REFERÊNCIA Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Cap. 4 INSTITUTO DE COMPUTAÇÃO

Leia mais

Programação de Computadores II. Cap. 17 Busca

Programação de Computadores II. Cap. 17 Busca Programação de Computadores II Cap. 17 Busca Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais dos profs.:

Leia mais

Aula 15: Pesquisa em Memória Primária. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP

Aula 15: Pesquisa em Memória Primária. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Aula 15: Pesquisa em Memória Primária Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Pesquisa em Memória Primária Introdução - Conceitos Básicos Pesquisa Sequencial Pesquisa Binária Árvores de

Leia mais

Árvore B. Uma Árvore B de ordem m éumaárvore,talque: Cada nó contém no máximo m

Árvore B. Uma Árvore B de ordem m éumaárvore,talque: Cada nó contém no máximo m Árvore B Uma Árvore B de ordem m éumaárvore,talque: Cada nó contém no máximo m 1valores; Os valores dentro de cada nó estão ordenados; Todos os valores na subárvore esquerda de um valor são menores que

Leia mais

INF 1620 P2-01/11/03 Questão 1 Nome:

INF 1620 P2-01/11/03 Questão 1 Nome: INF 1620 P2-01/11/03 Questão 1 Considere a implementação de uma lista encadeada para armazenar as notas dos alunos de uma turma dada pelo tipo abaixo: struct lista { char nome[81]; int mat; float p1, p2,

Leia mais

Estruturas de Dados. Parte dos slides a seguir são adaptações, extensões e recodificações em C dos originais:

Estruturas de Dados. Parte dos slides a seguir são adaptações, extensões e recodificações em C dos originais: Estruturas de Dados Listas Dinâmicas Simplesmente Encadeadas Prof. Ricardo J. G. B. Campello Créditos Parte dos slides a seguir são adaptações, extensões e recodificações em C dos originais: disponíveis

Leia mais

Algoritmos de Busca em Vetores

Algoritmos de Busca em Vetores Algoritmos de Busca em Vetores INF1005 Programação I Prof. Hélio Lopes lopes@inf.puc-rio.br sala 408 RDC 1 busca em vetores tópicos busca linear (sequencial) busca binária referência Capítulo 17 do livro

Leia mais

CHAPTER ONE. Uma árvore B de ordem "m" (máximo de filhos para cada nó) é uma árvore que atende as seguintes propriedades:

CHAPTER ONE. Uma árvore B de ordem m (máximo de filhos para cada nó) é uma árvore que atende as seguintes propriedades: / EDOA / 1 CHAPTER ONE B-Tree Uma B-tree, ou bárvore, é uma árvore de busca equilibrada, desenhada para ter um bom desempenho em dispositivos de memória secundária de acesso direto pois elas minimizam

Leia mais

Busca em Arranjos. Busca em arranjos. Busca em arranjos. Programação de Computadores. Busca em Arranjos

Busca em Arranjos. Busca em arranjos. Busca em arranjos. Programação de Computadores. Busca em Arranjos Busca em Arranjos Programação de Computadores Busca em Arranjos Como sabemos, arranjos são uma maneira de se armazenar muita informação em série Esta informação, em situações práticas, é usualmente dividida

Leia mais

Árvores Binárias. Disciplina de Algoritmos e Estrutura de Dados III. Prof. Marcos Antonio Schreiner 17/03/2015

Árvores Binárias. Disciplina de Algoritmos e Estrutura de Dados III. Prof. Marcos Antonio Schreiner 17/03/2015 Árvores Binárias Disciplina de Algoritmos e Estrutura de Dados III Prof. Marcos Antonio Schreiner 17/03/2015 1 Introdução Árvore binárias são estruturas importantes toda vez que uma decisão binária deve

Leia mais

ÁRVORE BINÁRIA DE BUSCA

ÁRVORE BINÁRIA DE BUSCA ÁRVORE BINÁRIA DE BUSCA Introdução O algoritmo de busca binária em vetores tem bom desempenho e deve ser usado quando temos os dados já ordenados. No entanto, se precisarmos inserir e remover elementos

Leia mais

Estrutura de Dados. Ricardo José Cabeça de Souza Parte 9

Estrutura de Dados. Ricardo José Cabeça de Souza  Parte 9 Estrutura de Dados Ricardo José Cabeça de Souza www.ricardojcsouza.com.br Parte 9 VETOR Ao declararmos um vetor, reservamos um espaço contíguo de memória para armazenar seus elementos Vetor não é uma estrutura

Leia mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE DA BEIRA INTERIOR UNIVERSIDADE DA BEIRA INTERIOR Programação II 1º Semestre Frequência 2 Resolução 07/01/2019 1. [1,25 val] - Análise de Complexidade dos Algoritmos Considere o seguinte bloco de código em linguagem C: for

Leia mais

Estrutura de Dados. Ricardo José Cabeça de Souza Parte 2

Estrutura de Dados. Ricardo José Cabeça de Souza   Parte 2 Estrutura de Dados Ricardo José Cabeça de Souza Parte 2 Em C, uma expressão é uma combinação de variáveis, constantes e operadores que pode ser avaliada computacionalmente, resultando em um valor O valor

Leia mais

Programação II. Busca em Vetor (search) Bruno Feijó Dept. de Informática, PUC-Rio

Programação II. Busca em Vetor (search) Bruno Feijó Dept. de Informática, PUC-Rio Programação II Busca em Vetor (search) Bruno Feijó Dept. de Informática, PUC-Rio Busca em Vetor Problema: Entrada: vetor v com n elementos elemento d a procurar Saída m se o elemento procurado está em

Leia mais

Árvores binárias de busca

Árvores binárias de busca Árvores binárias de busca / Árvores de busca / 1 Árvores binárias de busca, ou binary search trees, BST, são árvores binárias onde, para cada sub-árvore, todos os elementos da sub-árvore da esquerda são

Leia mais

INF1007: Programação 2 7 Busca em Vetores. 01/04/2014 (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2 7 Busca em Vetores. 01/04/2014 (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 7 Busca em Vetores 01/04/2014 (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Busca em vetor Busca linear Busca binária 01/04/2014 (c) Dept. Informática - PUC-Rio 2 Busca em

Leia mais

Carlos Eduardo Batista. Centro de Informática - UFPB

Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Aritmética de ponteiros em C (continuação) O que acontece na memória? Ponteiro para ponteiro etc. Métodos de pesquisa

Leia mais

Pesquisa em Memória Primária Árvores de Busca. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Pesquisa em Memória Primária Árvores de Busca. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Pesquisa em Memória Primária Árvores de Busca David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Árvores de Pesquisa A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar

Leia mais

Algoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira.

Algoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira. Algoritmos e Estrutura de Dados II Árvore Prof a Karina Oliveira kkco@dei.unicap.br Introdução Estruturas de dados lineares (pilha, fila) são estruturas que guardam coleções de elementos que são acessados

Leia mais

Árvore Binária de Busca. Prof. César Melo

Árvore Binária de Busca. Prof. César Melo Árvore Binária de Busca Prof. César Melo Introdução O algoritmo de busca binária em vetores tem bom desempenho e deve ser usado quando temos os dados já ordenados. No entanto, se precisarmos inserir e

Leia mais

Estruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1

Estruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1 Estruturas de Dados Módulo 17 - Busca 2/6/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)

Leia mais

Aula 16: Pesquisa em Memória Primária - Árvores de Busca. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP

Aula 16: Pesquisa em Memória Primária - Árvores de Busca. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Aula 16: Pesquisa em Memória Primária - Árvores de Busca Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Árvores de Pesquisa A árvore de pesquisa é uma estrutura de dados muito eficiente para

Leia mais

Árvores Binárias de Busca (ABB) 18/11

Árvores Binárias de Busca (ABB) 18/11 Árvores Binárias de Busca (ABB) 18/11 Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguintes propriedade: Para todo nó da árvore, se seu valor é X, então:

Leia mais

Lista de Exercícios sobre Listas Implementadas por Encadeamento

Lista de Exercícios sobre Listas Implementadas por Encadeamento Lista de Exercícios sobre Listas Implementadas por Encadeamento 1) Se você tem de escolher entre uma representação por lista encadeada ou uma representação usando posições contíguas de memória para um

Leia mais

Tabelas de hash Acabamos de estudar como implementar uma tabela hashing aberta e estudaremos agora como implementar uma tabela hashing fechada ou

Tabelas de hash Acabamos de estudar como implementar uma tabela hashing aberta e estudaremos agora como implementar uma tabela hashing fechada ou Tabelas de hash Acabamos de estudar como implementar uma tabela hashing aberta e estudaremos agora como implementar uma tabela hashing fechada ou também denominada de tabela hashing com endereçamento aberto.

Leia mais

LISTAS. Profa. Me. Andréa Zotovici. São Paulo 2014

LISTAS. Profa. Me. Andréa Zotovici. São Paulo 2014 LISTAS Profa. Me. Andréa Zotovici São Paulo 214 1 INTRODUÇÃO Tipo Abstrato de Dados. É descrito por propriedades e operações. Quando utilizado não é necessário conhecer detalhes da sua implementação, apenas

Leia mais

Tabelas Hash. Prof. Túlio Toffolo BCC202 Aulas 23 e 24 Algoritmos e Estruturas de Dados I

Tabelas Hash. Prof. Túlio Toffolo  BCC202 Aulas 23 e 24 Algoritmos e Estruturas de Dados I Tabelas Hash Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aulas 23 e 24 Algoritmos e Estruturas de Dados I Pesquisa em Memória Primária Introdução - Conceitos Básicos Pesquisa Sequencial Pesquisa

Leia mais

DAINF - Departamento de Informática

DAINF - Departamento de Informática DAINF - Departamento de Informática Algoritmos 2 - Árvore binária de busca Prof. Alex Kutzke ( http://alex.kutzke.com.br/courses ) 30 de Novembro de 2015 Slides adaptados do material produzido pelo Prof.

Leia mais

Árvores de Pesquisa. A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar informação.

Árvores de Pesquisa. A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar informação. Árvores de Pesquisa A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar informação. Particularmente adequada quando existe necessidade de considerar todos ou alguma combinação

Leia mais

Árvores Binária de Busca. Prof. César Melo DCC/ICE/UFAM

Árvores Binária de Busca. Prof. César Melo DCC/ICE/UFAM Árvores Binária de Busca Prof. César Melo DCC/ICE/UFAM Introdução O algoritmo de busca binária em vetores tem bom desempenho e deve ser usado quando temos os dados já ordenados. No entanto, se precisarmos

Leia mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE DA BEIRA INTERIOR UNIVERSIDADE DA BEIRA INTERIOR Algoritmos e Estruturas de Dados - Bioengenharia 2º Semestre Exame Especial Resolução 19/07/2013 A. [4.75 val] Algoritmos de ordenação e de pesquisa (usando memória estática

Leia mais

Algoritmos e Estruturas de dados

Algoritmos e Estruturas de dados Algoritmos e Estruturas de dados Listas Encadeadas Prof. Dr. Fábio Rodrigues de la Rocha (Listas Encadeadas) 1 / 21 Definição: Anteriormente estudamos listas encadeadas que foram implementadas como vetores

Leia mais

Classificação e Pesquisa

Classificação e Pesquisa Classificação e Pesquisa Pesquisa de Dados - Seqüencial - Binária Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Onde Estamos Ementa Pesquisa de Dados Seqüencial Binária

Leia mais

Programação II. Listas Encadeadas (Linked Lists) Bruno Feijó Dept. de Informática, PUC-Rio

Programação II. Listas Encadeadas (Linked Lists) Bruno Feijó Dept. de Informática, PUC-Rio Programação II Listas Encadeadas (Linked Lists) Bruno Feijó Dept. de Informática, PUC-Rio Vetores vs Estruturas Dinâmicas Vetores (arrays): Ocupa um espaço contíguo de memória Permite acesso randômico

Leia mais

INF 1010 Estruturas de Dados Avançadas

INF 1010 Estruturas de Dados Avançadas INF 1010 Estruturas de Dados Avançadas Listas de Prioridades e Heaps 12/09/16 2012 DI, PUC-Rio Estruturas de Dados Avançadas 2012.1 1 uma outra aplicação de árvores binárias lista de prioridades: lista

Leia mais

Tabela Hash. Disciplina de Algoritmos e Estrutura de Dados III. Prof. Marcos Antonio Schreiner 15/05/2015

Tabela Hash. Disciplina de Algoritmos e Estrutura de Dados III. Prof. Marcos Antonio Schreiner 15/05/2015 Tabela Hash Disciplina de Algoritmos e Estrutura de Dados III Prof. Marcos Antonio Schreiner 15/05/2015 Introdução Seja um conjunto de chaves armazenadas em um vetor e em uma árvore AVL. Qual a complexidade

Leia mais

Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.

Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Listas Estáticas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de

Leia mais

4. Algoritmos de Busca em Vetores

4. Algoritmos de Busca em Vetores Introdução à Computação II 5952011 4. Algoritmos de Busca em Vetores Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 4.1. Introdução 4.2. Busca Linear 4.2.1.

Leia mais

Estruturas de Dados Apresentação da Disciplina

Estruturas de Dados Apresentação da Disciplina Estruturas de Dados Apresentação da Disciplina Prof. Alessandro Borges Tópicos Cabeçalho Ementa Objetivos Conteúdo Programático Estratégias de Ensino Sistema de Avaliação Bibliografia Cabeçalho CURSO:

Leia mais

Lista de Exercícios 04

Lista de Exercícios 04 Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: BCC202 - Estruturas de Dados I Professor: Túlio Toffolo (www.decom.ufop.br/toffolo)

Leia mais

L I C R P * * V O * * A * A F * * * * *

L I C R P * * V O * * A * A F * * * * * UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA Bacharelado em Ciência da Computação e Engenharia da Computação INF 01203 Estruturas de Dados Profa. Renata Galante (galante@inf.ufrgs.br

Leia mais

Copiar para o ficheiro ArvoreBinaria.h e adaptar as funções associadas às operações sobre árvores binárias (3.1 a 3.12)

Copiar para o ficheiro ArvoreBinaria.h e adaptar as funções associadas às operações sobre árvores binárias (3.1 a 3.12) Considere as seguintes declarações (NodoArv e PNodoArv), adaptadas dos apontamentos: struct NodoArv { int Elemento; struct NodoArv *Esquerda; struct NodoArv *Direita; ; typedef struct NodoArv *PNodoArv;

Leia mais

Lista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35

Lista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Lista Ordenada Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Definição Operações Representações Contígua Encadeada Aplicação Exercícios 2

Leia mais

MÉTODOS DE PESQUISA DE DADOS EM MEMÓRIA PRIMÁRIA. Material da Prof. Ana Eliza

MÉTODOS DE PESQUISA DE DADOS EM MEMÓRIA PRIMÁRIA. Material da Prof. Ana Eliza MÉTODOS DE PESQUISA DE DADOS EM MEMÓRIA PRIMÁRIA Material da Prof. Ana Eliza Métodos de Pesquisa em Memória Primária Pesquisa Seqüencial Bases ordenadas e não-ordenadas Pesquisa Seqüencial Melhorada Bases

Leia mais

Programação II. Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio

Programação II. Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio Programação II Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio Árvores Dados organizados de maneira hierárquica Exemplos: arquivos em diretórios, subdivisão de espaço 2D em um

Leia mais

Centro Federal de Educação Tecnológica de Minas Gerais Programa de Pós-Graduação em Modelagem Matemática e Computacional

Centro Federal de Educação Tecnológica de Minas Gerais Programa de Pós-Graduação em Modelagem Matemática e Computacional Centro Federal de Educação Tecnológica de Minas Gerais Programa de Pós-Graduação em Modelagem Matemática e Computacional Disciplina: Algoritmos e Estruturas de Dados Professor: Flávio Cardeal Lista de

Leia mais

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Introdução Criada em 1972, por Dennis Ritchie; Centro de Pesquisas da Bell Laboratories; Para utilização no S.O. UNIX; C é uma linguagem

Leia mais

Árvores Binárias de Busca (ABB) 18/11

Árvores Binárias de Busca (ABB) 18/11 Árvores Binárias de Busca (ABB) 18/11 Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguintes propriedade: Para todo nó da árvore, se seu valor é X, então:

Leia mais

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO SCC-602 Algoritmos e Estruturas de Dados I - EC Profa. Graça Nunes 2º. Semestre de 2010 Prova 1(Gabarito) 16/09/2010 Nome: Nro

Leia mais

Pilhas e Filas Encadeadas. Algoritmos e Estruturas de Dados I

Pilhas e Filas Encadeadas. Algoritmos e Estruturas de Dados I Pilhas e Filas Encadeadas Algoritmos e Estruturas de Dados I Pilha Lista linear: pilha Represente graficamente o funcionamento da pilha, representando a pilha vazia, a entrada e a saída de elementos Quais

Leia mais

Estrutura de Dados. Ricardo José Cabeça de Souza Parte 4

Estrutura de Dados. Ricardo José Cabeça de Souza   Parte 4 Estrutura de Dados Ricardo José Cabeça de Souza www.ricardojcsouza.com.br Parte 4 As funções dividem grandes tarefas de computação em tarefas menores Criação de funções evita a repetição de código Exemplo

Leia mais

ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior

ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior Árvore Binária de Busca (ABB) o valor associado à raiz é sempre maior que o valor associado a qualquer nó da sub-árvore à esquerda

Leia mais

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula Tópicos Introdução Alocação sequencial Listas lineares,

Leia mais

INF 1620 P2-23/10/04 Questão 1 Nome:

INF 1620 P2-23/10/04 Questão 1 Nome: INF 1620 P2-23/10/04 Questão 1 Considere um tipo abstrato de dados para representar uma disciplina da PUC-Rio, com as seguintes informações: Nome da disciplina: com até 50 caracteres Código da disciplina:

Leia mais

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S PROGRAMAÇÃO I VA R I Á V E I S, C O N S TA N T E S, O P E R A D O R E S E N T R A DA E S A Í DA D E DA D O S Variáveis 2 Variáveis são locais onde são armazenados os valores na memória. Toda variável é

Leia mais

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura Árvores B Prof. Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Fonte: Material da Prof a Ana Eliza Lopes Moura Situação Problema Memória Principal Volátil e limitada Aplicações Grandes

Leia mais

Estrutura de Dados Conceitos Iniciais

Estrutura de Dados Conceitos Iniciais Engenharia de CONTROLE e AUTOMAÇÃO Estrutura de Dados Conceitos Iniciais Aula 01 DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria

Leia mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE DA BEIRA INTERIOR UNIVERSIDADE DA BEIRA INTERIOR Programação II 2º Semestre Frequência 2 (8 valores) Resolução 30/05/2018 A. Análise de complexidade dos algoritmos 1. (0.75 val) Considere a seguinte função em C: void funcao

Leia mais

Instituto de C. Filas. Luis Martí Instituto de Computação Universidade Federal Fluminense -

Instituto de C. Filas. Luis Martí Instituto de Computação Universidade Federal Fluminense - Instituto de C Filas Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução

Leia mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE DA BEIRA INTERIOR UNIVERSIDADE DA BEIRA INTERIOR Algoritmos e Estruturas de Dados - Bioengenharia 2º Semestre Frequência Resolução 19/maio/2015 A. [3.5 val] Algoritmos de ordenação e de pesquisa Considere-se as seguintes

Leia mais

ÁRVORE B. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

ÁRVORE B. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ÁRVORE B Vanessa Braganholo Estruturas de Dados e Seus Algoritmos INTRODUÇÃO 2 ARQUIVOS DE ACESSO DIRETO Basicamente, duas formas de acesso a um registro: Acesso via cálculo do endereço do registro (hashing)

Leia mais

Listas Estáticas. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista

Listas Estáticas. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista Listas Estáticas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de

Leia mais

Árvores de Pesquisa (Parte I)

Árvores de Pesquisa (Parte I) Baseado no material do Prof. Reinaldo Fortes para o curso de 2014-01 Arquivo original: 21._arvores_(parte_1) Árvores de Pesquisa (Parte I) Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Algoritmos

Leia mais

Paradigmas de Linguagens

Paradigmas de Linguagens Paradigmas de Linguagens Aula 2: Tipos de dados Professora Sheila Cáceres Tipos de dados Dados são a matéria prima da computação junto com os programas. LPs precisam manipular dados. LPS utilizam os conceitos

Leia mais

Estruturas de Dados. Módulo 11 Pilhas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1

Estruturas de Dados. Módulo 11 Pilhas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Estruturas de Dados Módulo 11 Pilhas 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)

Leia mais

Listas Lineares. continuando...

Listas Lineares. continuando... Listas Lineares continuando... 1 Listas! relembrando: listas lineares agrupa informações referentes aum conjunto de elementos que, de alguma forma, se relacionam entre si! Uma lista linear ou está vazia,

Leia mais

Árvores AVL e Árvores B. Jeane Melo

Árvores AVL e Árvores B. Jeane Melo Árvores AVL e Árvores B Jeane Melo Roteiro Árvores Binárias Árvores AVL Definição Motivação Balanceamento Operações de rebalanceamento Árvores B Introdução Árvores Binárias Árvores binárias Cada nó tem

Leia mais

Carlos Eduardo Batista. Centro de Informática - UFPB

Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Métodos de pesquisa e classificação de dados (continuação) Estruturas de Dados 2 Algoritmo de busca Recebe como argumento

Leia mais

Linguagem C Princípios Básicos (parte 1)

Linguagem C Princípios Básicos (parte 1) Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos

Leia mais

Árvores binárias de busca

Árvores binárias de busca Árvores binárias de busca Introdução à Ciência de Computação II Diego R. Amancio Baseado no material do Prof. Thiago A. S. Pardo Árvore binárias n Árvores de grau 2, isto é, cada nó tem dois filhos, no

Leia mais

Estruturas de Dados. Módulo 12 - Filas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1

Estruturas de Dados. Módulo 12 - Filas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Estruturas de Dados Módulo 12 - Filas 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)

Leia mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE DA BEIRA INTERIOR UNIVERSIDADE DA BEIRA INTERIOR Programação II 2º Semestre Exame Época Norma (15 val) Resolução 22/06/2018 1 [1,00 val + 1,00 val] - Memória Dinâmica Considere as seguintes declarações de variáveis: int

Leia mais

INF1007: Programação 2 6 Ordenação de Vetores. 01/10/2015 (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2 6 Ordenação de Vetores. 01/10/2015 (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 6 Ordenação de Vetores 01/10/2015 (c) Dept. Informática - PUC-Rio 1 Tópicos Introdução Ordenação bolha (bubble sort) Ordenação por seleção (selection sort) 01/10/2015 (c) Dept. Informática

Leia mais

1. Selecione a Estrutura de Dados que melhor representa os diretórios ou pastas de arquivos do computador.

1. Selecione a Estrutura de Dados que melhor representa os diretórios ou pastas de arquivos do computador. 1. Selecione a Estrutura de Dados que melhor representa os diretórios ou pastas de arquivos do computador. 1) Fila 2) Pilha 3) Árvore 4) Lista 5) Grafo 2. Selecione a Estrutura de Dados que melhor representa

Leia mais

INF 1620 P3-25/11/05 Questão 1 Nome:

INF 1620 P3-25/11/05 Questão 1 Nome: INF 1620 P3-25/11/05 Questão 1 Dizemos que uma matriz quadrada é um quadrado mágico se a soma dos elementos de cada linha, a soma dos elementos de cada coluna e a soma dos elementos de sua diagonal principal

Leia mais

INF1007 Programação 2 9 Pilhas. (c) Dept. Informática - PUC-Rio 1

INF1007 Programação 2 9 Pilhas. (c) Dept. Informática - PUC-Rio 1 INF1007 Programação 2 9 Pilhas (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Introdução Interface do tipo pilha Exemplo de uso: verificação de expressões Implementação de pilha com lista encadeada

Leia mais

Árvores Binárias de Busca

Árvores Binárias de Busca Árvores Binárias de Busca SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto

Leia mais

INF 1007 Programação II

INF 1007 Programação II INF 1007 Programação II Aula 09 Ordenação de Vetores Edirlei Soares de Lima Ordenação de Vetores Problema: Entrada: vetor com os elementos a serem ordenados; Saída: mesmo vetor com

Leia mais

SUBGERÊNCIA DE GESTÃO EDUCACIONAL PLANO DE CURSO

SUBGERÊNCIA DE GESTÃO EDUCACIONAL PLANO DE CURSO PLANO DE CURSO Curso: Eng. Mecânica Componente Curricular: Algoritmos e Estrutura de Dados Turma/turno: EMSM.1.ENGMEC - 2012/1. Professor: Eduardo da Silva Período Letivo: 2012/1 Competência(s) do componente

Leia mais

Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1

Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1 Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1 - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) PIP/CA - Programa Interdisciplinar de Pós-Graduação

Leia mais

Representações de Grafos

Representações de Grafos Representações de Grafos Teoria dos Grafos 1 É possível diversas representações dos grafos. Vamos estudar as três utilizadas mais comumente: as matrizes de adjacência, as listas de adjacência e as multilistas

Leia mais

Pesquisa Sequencial e Binária

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

Leia mais

Algoritmos de Ordenação

Algoritmos de Ordenação Algoritmos de Ordenação! Problema: encontrar um número de telefone em uma lista telefônica! simplificado pelo fato dos nomes estarem em ordem alfabética! e se estivesse sem uma ordem?! Problema: busca

Leia mais

Fontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Livros:

Fontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Livros: Fontes Bibliográficas Estruturas de Dados Aula 15: Árvores Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos (Nivio Ziviani): Capítulo 5; Estruturas

Leia mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE DA BEIRA INTERIOR UNIVERSIDADE DA BEIRA INTERIOR Algoritmos e Estruturas de Dados - Bioengenharia 2º Semestre Exame Época Normal Resolução 13/junho/2015 A. [3.5 val] Algoritmos de ordenação e de pesquisa Considere-se as

Leia mais

Estruturas de dados e algoritmos fundamentais

Estruturas de dados e algoritmos fundamentais Ministério da Ciência, Tecnologia e Ensino Superior U.C. 21046 Estruturas de dados e algoritmos fundamentais 21 de Junho de 2013 INSTRUÇÕES PARA A RESOLUÇÃO DO EXAME, ACONSELHA-SE QUE LEIA ATENTAMENTE

Leia mais

Modulo 13: para os que ainda tem dúvidas no assunto...

Modulo 13: para os que ainda tem dúvidas no assunto... PROGRAMAÇÃO DE COMPUTADORES V - TCC- 00.323 Modulo 13: para os que ainda tem dúvidas no assunto... Aura -Erick aconci@ic.uff.br, erickr@id.uff.br Roteiro Gabarito da prova Data da vista da P2 e/ou sua

Leia mais

Lista de Exercícios sobre Tipos Abstratos de Dados (TAD) e Estruturas de Dados em C

Lista de Exercícios sobre Tipos Abstratos de Dados (TAD) e Estruturas de Dados em C Lista de Exercícios sobre Tipos Abstratos de Dados (TAD) e Estruturas de Dados em C 1) Escreva uma especificação de tipos abstratos de dados (TAD) para os números complexos, a + bi, onde abs(a + bi) é

Leia mais

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. 1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras

Leia mais

Slide 01 16/03/2017. Estruturas de Dados. Prof. Cleziel Franzoni da /Cleziel.

Slide 01 16/03/2017. Estruturas de Dados. Prof. Cleziel Franzoni da /Cleziel. Slide 01 16/03/2017 Estruturas de Dados Prof. Cleziel Franzoni da Costa 1 @Cleziel /Cleziel cleziel@hotmail.com 42 3 EMENTA Listas lineares e suas variações. Filas e pilhas. Árvores binárias e suas variações.

Leia mais

Árvores binárias de busca

Árvores binárias de busca Árvores binárias de busca S-202 lgoritmos e Estruturas de Dados I Prof. Thiago. S. Pardo Árvore binárias Árvores de grau 2, isto é, cada nó tem dois filhos, no máximo Raiz D B E Terminologia: filho esquerdo

Leia mais

Análise e Complexidade de Algoritmos

Análise e Complexidade de Algoritmos Análise e Complexidade de Algoritmos Métodos de busca - seqüêncial - binária Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Onde Estamos Ementa Revisão: Estrutura de dados;crescimento

Leia mais

Árvores Binárias de Busca

Árvores Binárias de Busca 0. Um breve comentário sobre os algoritmos de busca em tabelas De uma maneira geral, realizam-se operações de busca, inserção e remoção de elementos numa tabela. A busca sequencial tradicional é O(N).

Leia mais