1 se n = 0 n (n 1)! se n 1

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

Download "1 se n = 0 n (n 1)! se n 1"

Transcrição

1 Recursão versus Iteração Problema: Cálculo de n! = n (n 1)... 1 int facti(int n) { int fac=n; while(n>0){ fac=fac*n; n--; } return fac; } [epd94, Cap ] Definição recursiva: n! = { 1 se n = 0 n (n 1)! se n 1 int factr(int n){ if(n==0) return(1); else return(n*factr(n-1)); } Departamento de Ciência de Computadores da FCUP PI Aula 10 1

2 Chamadas recursivas e valores retornados de cada chamada 5! 5*4! 4*3! 3*2! 5! 5*24=120 5*4! 4*6=24 4*3! 3*2=6 3*2! Suponhamos n = 5 2*1! 1*0! 1 2*1! 1*0! 1 2*1=2 1*1=1 1 Departamento de Ciência de Computadores da FCUP PI Aula 10 2

3 Paradigmas Paradigma iterativo: uma sequência de instruções é excutada duma forma repetitiva, controlada por uma dada condição (p.e. decremento de um contador)(ciclo iterativo). Paradigma recursivo: 1. existência de casos simples, em que a resposta é determinada directamente; 2. ser possível uma decomposição duma instância do problema, em instâncias mais simples da mesma forma. 3. repetição por chamadas sucessivas: numa função recursiva, são criadas várias activações dela própria que desaparecem há medida que a execução avança. Em cada momento apenas uma das activações está activa, estando as restantes à espera que essa termine para continuarem. Departamento de Ciência de Computadores da FCUP PI Aula 10 3

4 Equivalência entre os paradigmas Os dois paradigmas são equivalentes: dada uma função recursiva existe sempre uma iterativa e vice-versa. Departamento de Ciência de Computadores da FCUP PI Aula 10 4

5 Escrever a representação dum inteiro n na base b. Função Iterativa void num_b_ite(int n,int b) { if (n<0) { printf("-"); n= -n;} if(n==0) {printf("%d",n); return;} while(n) { printf("%d",n%b); n=n/b; } } Função Recursiva: void num_b(int n,int b) { if (n<0) {printf("-");n= -n;} if(n/b) num_b(n/b,b); printf("%d",n%b); } Departamento de Ciência de Computadores da FCUP PI Aula 10 5

6 Estas funções não são exactamente equivalentes! Porquê? Como torná-las equivalentes? Departamento de Ciência de Computadores da FCUP PI Aula 10 6

7 Sequência de Fibonacci (outra vez...) Começando com 0 e 1, cada termo seguinte é a soma dos dois anteriores Assim o n-ésimo termo é calculado por f n = f n 1 + f n 2 e f 0 = 0 e f 1 = 1. Então, escrever uma função recursiva é imediato int fib(int n) { if(n==0 n==1) return n; return fib(n-1)+fib(n-2); } Segue a execução para f(4);. Como é uma versão iterativa? Departamento de Ciência de Computadores da FCUP PI Aula 10 7

8 O Puzzle das Torres de Hanoi (inventado por Eduoard Lucas (1880)) São dados três suportes (a, b e c) e n discos de tamanhos diferentes.os discos estão empilhados num dos suportes por ordem crescente de tamanhos.pretende-se mover os discos para outro suporte de modo que: em cada passo exactamente um disco seja movido de um suporte para o outro um disco não pode nunca estar por cima de um menor o terceiro suporte pode ser usado como auxiliar Departamento de Ciência de Computadores da FCUP PI Aula 10 8

9 Algoritmo (Função recursiva) 1. Representar cada suporte por um caracter ( a, b e c ). Pretende-se uma função recursiva: void hanoi(int n, char inicio, char fim, char temp); 2. Escrever uma função moveum(char ini, char fim) que move a peça do cimo do suporte ini para o suporte fim. moveum(char ini, char fim){ printf("%c-> %c",ini,fim); } Departamento de Ciência de Computadores da FCUP PI Aula 10 9

10 3. A função hanoi() fica: void hanoi(int n, char inicio, char fim, char temp) { if (n==1) moveum(inicio,fim); else { hanoi(n-1,inicio,temp,fim); moveum(inicio,fim); hanoi(n-1,temp,fim,inicio); } } Departamento de Ciência de Computadores da FCUP PI Aula 10 10

11 Execução %hanoi 3 a-> b a-> c b-> c a-> b c-> a c-> b a-> b % O algoritmo é expon^encial O(2 n ): O número de movimentos é exponencial com n, T n = 2T n isto é, T n = 2 n 1...(porquê?) Departamento de Ciência de Computadores da FCUP PI Aula 10 11

12 Método de ordenação Quicksort C.A.R.Hoare Método: Dada uma sequência de valores, escolhe-se um elemento (pivot) e os restantes valores são reagrupados em duas subsequências (partição): os que são menores que esse elemento os que são maiores. O mesmo processo é aplicado recursivamente a cada subsequência.quando um subconjunto tem menos que 2 elementos a recursão pára. Vamos escolher sempre o elemento do meio, como pivot Departamento de Ciência de Computadores da FCUP PI Aula 10 12

13 void quicksort(int v[], int esq, int dir){ int i; if(esq>=dir) return ; i=particao(v,esq,dir); quicksort(v,esq,i-1); quicksort(v,i+1,dir); } int particao(int v[],int esq,int dir){ int i, fim; troca(v,esq,(esq+dir)/2); fim=esq; for(i=esq+1;i<=dir;i++) if(v[i]<v[esq]) troca(v,++fim,i); troca(v,esq,fim); return fim; void troca(int v[], int i,int j){ int temp; temp=v[i]; v[i]=v[j]; v[j]=temp;} Departamento de Ciência de Computadores da FCUP PI Aula 10 13

14 Subvector: Pivot: 58 Particao esq: Particao dir: Subvector: Pivot: 25 Particao esq: 19 Particao dir: Subvector: Pivot: 37 Particao esq: Particao dir: 56 Subvector: Pivot: 95 Particao esq: 73 Particao dir: Ordenado: Execução Departamento de Ciência de Computadores da FCUP PI Aula 10 14

15 Departamento de Ciência de Computadores da FCUP PI Aula 10 15

16 Quicksort para ordenar uma variável indexada de strings void quicksort_s(char v[][maxcol],int esq, int dir){ int i; if(esq>=dir) return; i=particao_s(v,esq,dir); quicksort_s(v,esq,fim-1); quicksort_s(v,fim+1,dir); } void particao(char v[][maxcol], int esq,int dir) { int i,fim; troca_s(v,esq,(esq+dir)/2); fim=esq; for(i=esq+1;i<=dir;i++) if(strcmp(v[i],v[esq])<0) troca_s(v,++fim,i) troca_s(v,esq,fim); returm fim;} void troca_s(char v[][maxcol], int i,int j) { char temp[maxcol]; strcpy(temp,v[i]); strcpy(v[i],v[j]); strcpy(v[j],temp);} Exercício Escreve uma função recursiva da pesq. binária em variável Departamento de Ciência de Computadores da FCUP PI Aula 10 16

17 indexada de strings. Exercício Escreve uma função recursiva que implemente o método de ordenação por seleção. Exercício Escreve uma função recursiva que dado n e k determine a potência k de n. Exercício Escreve uma função recursiva que determine o máximo divisor comun entre dois inteiros. Exercício Escreve uma função recursiva que gere todas as permutações de n elementos. Departamento de Ciência de Computadores da FCUP PI Aula 10 17

18 Retrocesso na Resolução de Problemas de Pesquisa Para muitos problemas, o método de resolução consiste em percorrer uma sequência de decisões, cada uma fazendo avançar no caminho para a solução. Se se fizerem as escolhas correctas chega-se a uma solução senão tem de ser retrocecer e escolher outros caminhos. Divisão em subtarefas Pesquisar exaustivamente um árvore de sub-tarefas Uso de Recursão Exemplos: procura de uma solução de um puzzle procura duma estratégia vencedora num jogo de dois jogadores Departamento de Ciência de Computadores da FCUP PI Aula 10 18

19 procura da saída de um labirinto procura de um caminho numa rede que liga vários pontos INCONVENIENTE: O tamanho da árvore de pesquisa cresce exponencialmente com o tamanho dos dados A saltar vai a todo o lado... Problema: dado um tabuleiro n n determinar se um cavalo do jogo de xadrez consegue percorrer todas as posições do tabuleiro, uma só vez,em n 2 1 movimentos. Estado Inicial: uma posição do tabuleiro Estado Final: Ter visitado todas as posições Mudança de Estado: salto em L 2 por 1, de uma posição para outra (candidata) Movimento válido: se existe uma posição para saltar e essa posição ainda não foi visitada Se o cavalo estiver na posição C estão marcadas as possíveis soluções: Departamento de Ciência de Computadores da FCUP PI Aula 10 19

20 C Departamento de Ciência de Computadores da FCUP PI Aula 10 20

21 Algoritmo de Procura com Retrocesso (Backtracking) tenta inicializa seleção de candidaos repete seleciona um candidato se aceitável marcar posição se não estado final tenta o passo seguinte se não sucedeu retira marca da posição até estado final ou não haver mais candidatos Importante: Número de candidatos é finito!!! Departamento de Ciência de Computadores da FCUP PI Aula 10 21

22 Salto de Cavalo I int h[10][10], tab_max; main(){ int i,j; do { printf(" Tamanho do tabuleiro[3-10]: "); scanf("%d",&tab_max); for(i=1;i<=tab_max; i++) for(j=1;j<=tab_max; j++) h[i][j]=0; printf("posicao inicial:\n"); printf("linha: "); scanf("%d",&i); printf("coluna: "); scanf("%d",&j); h[i][j]=1; if (try(2,i,j)==1) for(i=1;i<=tab_max;i++) { for(j=1;j<=tab_max;j++) printf("%d ",h[i][j]); printf("\n \n");} else printf("nao ha solucao \n"); printf("ctrl C para terminar \n"); } while(getchar()!=eof); } Departamento de Ciência de Computadores da FCUP PI Aula 10 22

23 #define tab_sq tab_max*tab_max #define in_tab(x) (x>0 && x<=tab_max) int casasx[]={2,1,-1,-2,-2,-1,1,2}; int casasy[]={1,2,,2, 1,-1,-2,-2,-1}; int try(int i,int x,int y){ int k = 0, u, v; while( k < 8 ){ u=x+casasx[k]; v=y+casasy[k]; if(in_tab(u) && in_tab(v)) if (h[u][v] == 0) { h[u][v]=i; if (i >= tab_sq) return 1; if (try(i+1,u,v)==1) return 1; h[u][v]=0; } k++; } return 0;} Departamento de Ciência de Computadores da FCUP PI Aula 10 23

24 Tamanho do tabuleiro[3-10]: 5 Posicao inicial: Linha: 1 Coluna: Ctrl C para terminar Tamanho do tabuleiro[3-10]: 5 Posicao inicial: Linha: 3 Coluna: Ctrl C para terminar ^C Exercício Problema das 8 rainhas É possível colocar 8 rainhas num Departamento de Ciência de Computadores da FCUP PI Aula 10 24

25 tabuleiro de xadrez (8x8) por forma a que não se ataquem mutuamente, isto é, que não haja duas rainhas numa mesma linha, coluna ou diagonal? Sugestão: Considere uma variável indexada v[8] tal que v[i] corresponde à linha em que estará a rainha da coluna i. A condição para que duas rainhas estejam na mesma linha é: #define linha(i,j) v[i] == v[j] e na mesma diagonal é #define abs(x) (x >= 0? x: -x) #define diagonal(i,j) abs(v[i]-v[j]) == abs(i-j) Podemos tentar gerar uma solução: colocando aleatóriamente valores de 0 a 8 (todos distintos) em v[] e depois ver se as condições anteriores se verificam para todos. Para cada hipótese há 56 testes e há 8 8 hipóteses... o método é muito ineficiente Tentar gerar uma solucao da esquerda para a direita, começando por fazer: i=0 -> v(i)=0 Departamento de Ciência de Computadores da FCUP PI Aula 10 25

26 i=1 -> procurar o primeiro valor que satisfaca as condicoes,i.e, v[1]=2 Em geral para cada i, se existe j > v[i] que satisfaz as condições relativamente às rainhas já colocadas, fazemos v[i]=j e passa-se para o i seguinte. Senão existe tal j, volta-se ao i anterior e tenta-se aplicar o processo. Departamento de Ciência de Computadores da FCUP PI Aula 10 26

27 Leituras [epd94, Cap ] [Bro97, Cap. 4.5] Departamento de Ciência de Computadores da FCUP PI Aula 10 27

28 Referências [Bro97] J. Glenn Brookshear. Computer Science, an overview. Addison-Wesley, [epd94] H.M. Deitel e P.J. Deitel. C:How to Program. Prentice Hall International Editions, 2 edition, Departamento de Ciência de Computadores da FCUP PI Aula 10 28

Introdução à Programação

Introdução à Programação Introdução à Programação 1.Ano LCC-MIERSI DCC - FCUP Nelma Moreira Aula 12 Recursividade Recursão versus Iteração FACTORIAL outra vez! Muitas versões. n! = n (n - 1)... 1 int facti(int n){ int fac=n; while(--n>0){

Leia mais

Operador de atribuição

Operador de atribuição Operador de atribuição Variavel = Express~ao [epd94, Cap. 3.11-3.12] Suponhámos que y tem valor 5: x = y + 1; É calculada assim (e por esta ordem): A expressão da direita é calculada, susbtituindo a variável

Leia mais

Estrutura de Dados Básica

Estrutura de Dados Básica Estrutura de Dados Básica Professor: Osvaldo Kotaro Takai. Aula 7: Recursividade O objetivo desta aula é apresentar o conceito de recursão para solução de problemas. A recursão é uma técnica de programação

Leia mais

Algoritmos de Busca em Tabelas

Algoritmos de Busca em Tabelas Dentre os vários algoritmos fundamentais, os algoritmos de busca em tabelas estão entre os mais usados. Considere por exemplo um sistema de banco de dados. As operações de busca e recuperação dos dados

Leia mais

Busca. Pesquisa sequencial

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

Leia mais

Programas simples em C

Programas simples em C Programas simples em C Problema 1. Escreve um programa em C que dados dois inteiros indique se são iguais ou qual o maior. Utilizar a construção em 5 etapas... quais? 1. Perceber o problema 2. Ideia da

Leia mais

Primos... Determinar se um inteiro é primo. 1. Um número é primo se apenas é divisível por ele próprio e por 1.

Primos... Determinar se um inteiro é primo. 1. Um número é primo se apenas é divisível por ele próprio e por 1. Primos... Problema 1. Determinar se um inteiro é primo. 1. Um número é primo se apenas é divisível por ele próprio e por 1. 2. Algoritmo: percorrer os inteiros de 2 a n-1 e verificar se dividem n:se nenhum

Leia mais

Árvore Binária de Busca

Á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

Leia mais

ALGORITMOS E ESTRUTURAS DE DADOS CES-11 CES-11 CES-11

ALGORITMOS E ESTRUTURAS DE DADOS CES-11 CES-11 CES-11 ALGORITMOS E ESTRUTURAS DE DADOS Prof. Paulo André Castro pauloac@ita.br 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

Leia mais

Pesquisa em Memória Primária. Prof. Jonas Potros

Pesquisa em Memória Primária. Prof. Jonas Potros Pesquisa em Memória Primária Prof. Jonas Potros Pesquisa em Memoria Primária Estudo de como recuperar informação a partir de uma grande massa de informação previamente armazenada. A informação é dividida

Leia mais

Introdução à Programação. Recursão

Introdução à Programação. Recursão Introdução à Programação Recursão Recursão decoração Substantivo feminino. 1.Ato ou efeito de decorar decorar Verbo transitivo direto. 1.Guarnecer com adorno(s); dispor formas e cores em; ornamentar, embelezar;

Leia mais

Faculdade Alagoana de Administração FAA Ciência da Computação. (Resolução de Problemas em) Espaço de Estados

Faculdade Alagoana de Administração FAA Ciência da Computação. (Resolução de Problemas em) Espaço de Estados Faculdade Alagoana de Administração FAA Ciência da Computação (Resolução de Problemas em) Espaço de Estados (Adaptado de O.B. Coelho & G. Bittencourt & C. Moraes) Maria Aparecida Amorim Sibaldo maasibaldo@gmail.com

Leia mais

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005.1. Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005.

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005.1. Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005. genda nálise e Técnicas de lgoritmos Jorge Figueiredo onceitos ásicos O Problema das Rainhas Template Genérico Mochila inária acktracking and ranch-and-ound Jogo da Troca de olas Jogo da Troca de olas

Leia mais

Árvores Binárias e Busca. Jeane Melo

Á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

Leia mais

Analise o código abaixo:

Analise o código abaixo: Recursão - introdução Analise o código abaixo: 1 # include 2 # include 3 int Fatorial ( int x) 4 int k, s =1; for (k =0;k

Leia mais

XXXVI OLIMPÍADA PAULISTA DE MATEMÁTICA Prova da Primeira Fase (11 de agosto de 2012) Nível (6 o e 7 o anos do Ensino Fundamental)

XXXVI OLIMPÍADA PAULISTA DE MATEMÁTICA Prova da Primeira Fase (11 de agosto de 2012) Nível (6 o e 7 o anos do Ensino Fundamental) Instruções: XXXVI OLIMPÍADA PAULISTA DE MATEMÁTICA Prova da Primeira Fase (11 de agosto de 2012) Nível (6 o e 7 o anos do Ensino Fundamental) Folha de Perguntas A duração da prova é de 3h30min. O tempo

Leia mais

Algoritmos de Pesquisa e Ordenação em Vectores

Algoritmos de Pesquisa e Ordenação em Vectores Algoritmos de Pesquisa e Ordenação em Vectores FEUP - MIEEC Programação 2-2008/2009 Pesquisa Sequencial Problema (pesquisa de valor em vector): Verificar se um valor existe no vector e, no caso de existir,

Leia mais

CIÊNCIA DA COMPUTAÇÃO PROVA PARA TRANSFERÊNCIA

CIÊNCIA DA COMPUTAÇÃO PROVA PARA TRANSFERÊNCIA COM. 1 CIÊNCIA DA COMPUTAÇÃO PROVA PARA TRANSFERÊNCIA 1. A CEF concederá um crédito especial com juros de 2% aos seus clientes de acordo com o saldo médio no último ano. Escreva um programa em C que leia

Leia mais

BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES

BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES ALGORITMOS DE BUSCA EM LISTAS COM ALOCAÇÃO SEQÜENCIAL Busca em Listas Lineares A operação de busca é

Leia mais

Funções recursivas. O exemplo mais comum: int fat(int n){ if(n == 0) return 1; return n*fat(n-1); }

Funções recursivas. O exemplo mais comum: int fat(int n){ if(n == 0) return 1; return n*fat(n-1); } Funções Recursivas Funções recursivas O exemplo mais comum: int fat(int n){ if(n == 0) return 1; return n*fat(n-1); Versão sem recursão: int fat(int n){ int i = 0; int f = 1; for(i=1; i

Leia mais

INF 1007 Programação II

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.

Leia mais

ALGORITMOS DE ORDENAÇÃO. Algoritmos de comparação-e-troca. Bubble Sort Merge Sort Quick Sort

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

Leia mais

Árvores Binárias - continuação

Á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

Leia mais

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 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

Leia mais

Problemas de Jogos e Tabuleiros

Problemas de Jogos e Tabuleiros Problemas de Jogos e Tabuleiros Professor Emiliano Augusto Chagas Para esquentar! 01) Duas crianças se revezam em turnos quebrando uma barra retangular de chocolate, com seis quadrados de altura e oito

Leia mais

Índice. Capítulo 2 Estrutura de Dados sequencial com armazenamento sequencial

Índice. Capítulo 2 Estrutura de Dados sequencial com armazenamento sequencial Índice i Índice Capítulo 2 Estrutura de Dados sequencial com armazenamento sequencial 1. A Estrutura Abstrata de Dados Lista... 1 1.1. Definição... 1 1.2. Implementação de Listas utilizando armazenamento

Leia mais

O Problema do Troco Principio da Casa dos Pombos. > Princípios de Contagem e Enumeração Computacional 0/48

O Problema do Troco Principio da Casa dos Pombos. > Princípios de Contagem e Enumeração Computacional 0/48 Conteúdo 1 Princípios de Contagem e Enumeração Computacional Permutações com Repetições Combinações com Repetições O Problema do Troco Principio da Casa dos Pombos > Princípios de Contagem e Enumeração

Leia mais

AV2 - MA 12-2012. (a) De quantos modos diferentes posso empilhá-los de modo que todos os CDs de rock fiquem juntos?

AV2 - MA 12-2012. (a) De quantos modos diferentes posso empilhá-los de modo que todos os CDs de rock fiquem juntos? Questão 1. Num porta-cds, cabem 10 CDs colocados um sobre o outro, formando uma pilha vertical. Tenho 3 CDs de MPB, 5 de rock e 2 de música clássica. (a) De quantos modos diferentes posso empilhá-los de

Leia mais

Recursividade. Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br. BCC202 Aula 08 Algoritmos e Estruturas de Dados I

Recursividade. Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br. BCC202 Aula 08 Algoritmos e Estruturas de Dados I Recursividade Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC202 Aula 08 Algoritmos e Estruturas de Dados I Outros Exemplos de Recursividade Factais são outros exemplos de recursividade Quando

Leia mais

MC-102 Aula 17 Strings e Matrizes

MC-102 Aula 17 Strings e Matrizes MC-102 Aula 17 Strings e Matrizes Instituto de Computação Unicamp 5 de Maio de 2015 Roteiro 1 Strings Strings: Exemplos 2 Matrizes Exemplos com Matrizes 3 Exercícios (Instituto de Computação Unicamp) MC-102

Leia mais

Cap.2.5: Design de Algoritmos e Programação Estruturada. Algoritmos, fluxogramas e pseudo-código

Cap.2.5: Design de Algoritmos e Programação Estruturada. Algoritmos, fluxogramas e pseudo-código Cap.2.5: Design de Algoritmos e Programação Estruturada Algoritmos, fluxogramas e pseudo-código 1 Sumário Problemas e algoritmos Desenho de algoritmos/programas Passos na construção de algoritmos Método

Leia mais

Algoritmos e Estruturas de Dados

Algoritmos e Estruturas de Dados Introdução aos Algoritmos e Estruturas de Dados 2 o Teste - A Ano lectivo: 2010/2011 2 o Semestre RESOLUÇÃO DO 2 o TESTE Grupo I (2.0 + 2.5 + 2.0 = 6.5 val.) I.a) Considere os tipos enum ocasiao e Presente

Leia mais

Regras dos Jogos da Exposição Matemática em Jogo. Alquerque

Regras dos Jogos da Exposição Matemática em Jogo. Alquerque Regras dos Jogos da Exposição Matemática em Jogo Alquerque (Regras de Afonso X) Colocam-se as peças no tabuleiro (em número de 7 ou 12 para cada jogador), como na figura. Os jogadores jogam alternadamente,

Leia mais

Processamento da Informação Teoria. Algoritmos e Tipos de dados

Processamento da Informação Teoria. Algoritmos e Tipos de dados Processamento da Informação Teoria Algoritmos e Tipos de dados Semana 01 Prof. Jesús P. Mena-Chalco 24/04/2013 (*) Slides adaptados das aulas do Prof. Harlen Costa Batagelo Algumas definições de algoritmo

Leia mais

Contagem I. Figura 1: Abrindo uma Porta.

Contagem I. Figura 1: Abrindo uma Porta. Polos Olímpicos de Treinamento Curso de Combinatória - Nível 2 Prof. Bruno Holanda Aula 4 Contagem I De quantos modos podemos nos vestir? Quantos números menores que 1000 possuem todos os algarismos pares?

Leia mais

Busca em Espaço de Estados

Busca em Espaço de Estados Busca em Espaço de Estados Jomi Fred Hübner jomi@inf.furb.br FURB / BCC Introdução 2 Agente orientado a meta O projetista não determina um mapeamento entre percepções e ações, mas determina que objetivo

Leia mais

Module Introduction. Programação. Cap. 4 Algoritmos e Programação Estruturada

Module Introduction. Programação. Cap. 4 Algoritmos e Programação Estruturada 5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação 9099 : Bioengenharia 10135 : Ciências Biomédicas Cap. 4 Algoritmos e Estruturada Module Introduction Algoritmos e Estruturada Objectivos:

Leia mais

Comandos Sequenciais if else, e Switch

Comandos Sequenciais if else, e Switch Introdução à Programação Comandos Sequenciais if else, e Switch 1º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv) O computador pensa? Muitas vezes utiliza-se a

Leia mais

Alguns Exercícios de Programação de em Linguagem C

Alguns Exercícios de Programação de em Linguagem C Alguns Exercícios de Programação de em Linguagem C Nelma Moreira Departamento de Ciência de Computadores Faculdade de Ciências, Universidade do Porto email: nam@ncc.up.pt 1997 1 Execução de algumas instruções

Leia mais

2. ALGORITMOS. Unesp Campus de Guaratinguetá. Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro

2. ALGORITMOS. Unesp Campus de Guaratinguetá. Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro 2. ALGORITMOS Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro 2 - Algoritmo 2.1: Introdução Antes de se utilizar uma linguagem de computador,

Leia mais

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 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

Leia mais

Prof. Dr. Abel Gomes (agomes@di.ubi.pt) Cap.4: Design de Algoritmos e Programação Estruturada. Algoritmos, fluxogramas e pseudo-código

Prof. Dr. Abel Gomes (agomes@di.ubi.pt) Cap.4: Design de Algoritmos e Programação Estruturada. Algoritmos, fluxogramas e pseudo-código Prof. Dr. Abel Gomes (agomes@di.ubi.pt) Cap.4: Design de Algoritmos e Programação Estruturada Algoritmos, fluxogramas e pseudo-código 1 Sumário Problemas e algoritmos Desenho de algoritmos/programas Passos

Leia mais

Lógica de Programação

Lógica de Programação Lógica de Programação Significa o uso correto das leis do pensamento e de processos de raciocínio para a produção de soluções logicamente válidas e coerentes, que resolvam com qualidade os problemas que

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

Análise de complexidade

Análise de complexidade Introdução Algoritmo: sequência de instruções necessárias para a resolução de um problema bem formulado (passíveis de implementação em computador) Estratégia: especificar (definir propriedades) arquitectura

Leia mais

INF 1005 Programação I

INF 1005 Programação I INF 1005 Programação I Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição de constantes:

Leia mais

Batalha Naval Algoritmos de Busca. Correlações curriculares Matemática: Números: maior que, menor que, iguais a.

Batalha Naval Algoritmos de Busca. Correlações curriculares Matemática: Números: maior que, menor que, iguais a. Atividade 6 Batalha Naval Algoritmos de Busca Sumário Computadores são freqüentemente requisitados a encontrar informação em grandes coleções de dados. Estes precisam desenvolver métodos rápidos e eficientes

Leia mais

Estruturas de Repetição

Estruturas de Repetição Estruturas de Repetição Lista de Exercícios - 04 Linguagem e Técnicas de Programação Professor: Edwar Saliba Júnior Estruturas de Repetição O que são e para que servem? São comandos que são utilizados

Leia mais

Exercícios de Java Aula 19

Exercícios de Java Aula 19 Exercícios de Java Aula 19 Link do curso: http://www.loiane.com/2013/10/curso-java-basico-java-se-gratuito/ 1. Criar um vetor A com 5 elementos inteiros. Construir um vetor B de mesmo tipo e tamanho e

Leia mais

Algoritmos e Estrutura de Dados III. Árvores

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

Leia mais

ALGORITMO I VARIÁVEIS INDEXADAS

ALGORITMO I VARIÁVEIS INDEXADAS VARIÁVEIS INDEXADAS Array Auxiliadora Freire Slide 1 Array: Conjunto de informações do mesmo tipo, cada informação é representada na memória do computador por uma variável. O nome de qualquer variável

Leia mais

Estruturas de entrada e saída

Estruturas de entrada e saída capa Estruturas de entrada e saída - A linguagem C utiliza de algumas funções para tratamento de entrada e saída de dados. - A maioria dessas funções estão presentes na biblioteca . - As funções

Leia mais

Programação Recursiva versão 1.02

Programação Recursiva versão 1.02 Programação Recursiva versão 1.0 4 de Maio de 009 Este guião deve ser entregue, no mooshak e no moodle, até às 3h55 de 4 de Maio. AVISO: O mooshak é um sistema de avaliação e não deve ser utilizado como

Leia mais

José Romildo Malaquias 2011-1

José Romildo Malaquias 2011-1 Programação de Computadores I Aula 08 Programação: Estruturas de Repetição José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/58 Motivação Como imprimir os três

Leia mais

Sistemas Operacionais e Introdução à Programação. Vetores e matrizes

Sistemas Operacionais e Introdução à Programação. Vetores e matrizes Sistemas Operacionais e Introdução à Programação Vetores e matrizes 1 Matrizes Cada elemento de uma matriz é referenciado indicando-se sua posição dentro da matriz. Na Matemática, matrizes são arranjos

Leia mais

Recursividade. Aula 9

Recursividade. Aula 9 Recursividade Aula 9 Em matemática vários objetos são definidos apresentando-se um processo que os produz. Ex PI (circunferência/diâmetro) Outra definição de um objeto por um processo é o fatorial de um

Leia mais

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 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

Leia mais

Algoritmos e Programação Estruturada

Algoritmos e Programação Estruturada Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.

Leia mais

Capítulo 2: Introdução à Linguagem C

Capítulo 2: Introdução à Linguagem C Capítulo 2: Introdução à Linguagem C INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso

Leia mais

ESTRUTURAS DE DADOS AVANÇADAS (INF 1010) (a) Seja um TAD definido por uma lista circular implementada em um vetor.

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

Leia mais

Algoritmos em Javascript

Algoritmos em Javascript Algoritmos em Javascript Sumário Algoritmos 1 O que é um programa? 1 Entrada e Saída de Dados 3 Programando 4 O que é necessário para programar 4 em JavaScript? Variáveis 5 Tipos de Variáveis 6 Arrays

Leia mais

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Análise de Algoritmos Aula 10 Distâncias Mínimas Edirlei Soares de Lima Distâncias Mínimas Dado um grafo ponderado G = (V, E), um vértice s e um vértice g, obter o caminho

Leia mais

Linguagem C: agregados heterogêneos, arquivos binários, recursividade. Prof. Críston Algoritmos e Programação

Linguagem C: agregados heterogêneos, arquivos binários, recursividade. Prof. Críston Algoritmos e Programação Linguagem C: agregados heterogêneos, arquivos binários, recursividade Prof. Críston Algoritmos e Programação Agregados heterogêneos Permitem agrupar variáveis de diferentes tipos em um único registro struct

Leia mais

Aluísio Eustáquio da Silva

Aluísio Eustáquio da Silva 1 Aluísio Eustáquio da Silva SciLab Programável Material didático usado em aulas de Programação de Computadores, Algoritmos e Lógica de Programação Betim Maio de 2012 2 PROGRAMAÇÃO O SciLab permite que

Leia mais

Projeto e Análise de Algoritmos. Profa. Juliana Kaizer Vizzotto. Projeto e Análise de Algoritmos - Aula 1

Projeto e Análise de Algoritmos. Profa. Juliana Kaizer Vizzotto. Projeto e Análise de Algoritmos - Aula 1 Projeto e Análise de Algoritmos Profa. Juliana Kaizer Vizzotto Projeto e Análise de Algoritmos - Aula 1 Roteiro Introdução Exemplo: ordenação Introdução Análise de Algoritmos Estudo teórico da performance

Leia mais

3ª Lista de Exercícios Representação de dados com agregados: Arrays e Matrizes

3ª Lista de Exercícios Representação de dados com agregados: Arrays e Matrizes 1 Universidade Federal Fluminense Instituto de Computação Departamento de Ciência da Computação Programação de Computadores II Professores: Leandro A. F. Fernandes, Marcos Lage, Pedro Velloso 3ª Lista

Leia mais

1 Resumo: Strings e vetores de caracteres. Departamento de Ciência da Computação IME/USP

1 Resumo: Strings e vetores de caracteres. Departamento de Ciência da Computação IME/USP Departamento de Ciência da Computação MAC2166 Introdução a Computação IME/USP Strings e vetores de caracteres 1 Resumo: O uso de strings facilita a manipulação de palavras e textos. Strings são basicamente

Leia mais

INSTITUTO VIANNA JÚNIOR FACULDADES INTEGRADAS VIANNA JÚNIOR ANÁLISE DA COMPLEXIDADE DE ALGORITMOS DE ORDENAÇÃO

INSTITUTO VIANNA JÚNIOR FACULDADES INTEGRADAS VIANNA JÚNIOR ANÁLISE DA COMPLEXIDADE DE ALGORITMOS DE ORDENAÇÃO INSTITUTO VIANNA JÚNIOR FACULDADES INTEGRADAS VIANNA JÚNIOR ANÁLISE DA COMPLEXIDADE DE ALGORITMOS DE ORDENAÇÃO Lúcia Helena de Magalhães 1 Mônica de Lourdes Souza Batista 2 Teresinha Moreira Magalhães

Leia mais

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 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

Leia mais

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 11 Problemas com Satisfação de Vínculos

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 11 Problemas com Satisfação de Vínculos Inteligência Artificial Prof. Tiago A. E. Ferreira Aula 11 Problemas com Satisfação de Vínculos 1 Constraint Satisfaction Problems (CSP) Conceitos básicos Busca cega simples e refinada Busca heurística

Leia mais

Somatórias e produtórias

Somatórias e produtórias Capítulo 8 Somatórias e produtórias 8. Introdução Muitas quantidades importantes em matemática são definidas como a soma de uma quantidade variável de parcelas também variáveis, por exemplo a soma + +

Leia mais

Lista de Exercícios 4: Soluções Sequências e Indução Matemática

Lista de Exercícios 4: Soluções Sequências e Indução Matemática UFMG/ICEx/DCC DCC Matemática Discreta Lista de Exercícios : Soluções Sequências e Indução Matemática Ciências Exatas & Engenharias o Semestre de 05 O conjunto dos números racionais Q é enumerável, ou seja,

Leia mais

JAVA NETBEANS PGOO Prof. Daniela Pires Conteúdo

JAVA NETBEANS PGOO Prof. Daniela Pires Conteúdo Conteúdo Estruturas de repetição (loops, laços)... 2 WHILE (enquanto)... 2 DO... WHILE (faça... enquanto)... 2 FOR... 3 FOREACH... 4 EXERCICIO LOOP FOR... 4 Novo Projeto... 5 Controles SWING... 10 1 Estruturas

Leia mais

DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA

DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA Sistemas Operativos 2003/2004 Trabalho Prático #2 -- Programação em C com ponteiros -- Objectivos Familiarização

Leia mais

Faculdade de Ciências Universidade Agostinho Neto Departamento de Matemática e Engenharia Geográfica Ciências da Computação

Faculdade de Ciências Universidade Agostinho Neto Departamento de Matemática e Engenharia Geográfica Ciências da Computação FaculdadedeCiências UniversidadeAgostinhoNeto DepartamentodeMatemáticaeEngenhariaGeográfica CiênciasdaComputação ProgramaçãoII SegundaParte Adaptado de um original dos docentes de ISCTE Objectivos Os alunos

Leia mais

Experimentos com a memória cache do CPU

Experimentos com a memória cache do CPU Experimentos com a memória cache do CPU Alberto Bueno Júnior & Andre Henrique Serafim Casimiro Setembro de 2010 1 Contents 1 Introdução 3 2 Desvendando o cache 3 2.1 Para que serve o cache?.....................

Leia mais

Árvores Binárias de Busca

Á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

Leia mais

Métodos Computacionais. Árvores

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

Leia mais

Contagem II. Neste material vamos aprender novas técnicas relacionadas a problemas de contagem. 1. Separando em casos

Contagem II. Neste material vamos aprender novas técnicas relacionadas a problemas de contagem. 1. Separando em casos Polos Olímpicos de Treinamento Curso de Combinatória - Nível 2 Prof. Bruno Holanda Aula 5 Contagem II Neste material vamos aprender novas técnicas relacionadas a problemas de contagem. 1. Separando em

Leia mais

Análises Geração RI (representação intermediária) Código Intermediário

Análises Geração RI (representação intermediária) Código Intermediário Front-end Análises Geração RI (representação intermediária) Código Intermediário Back-End Geração de código de máquina Sistema Operacional? Conjunto de Instruções do processador? Ambiente de Execução O

Leia mais

Introdução a Algoritmos Parte 04

Introdução a Algoritmos Parte 04 Universidade Federal do Vale do São Francisco Curso de Engenharia de Computação Introdução a Algoritmos Parte 04 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti

Leia mais

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP AGRUPAMENTO DE ESCOLAS DE SANTA COMBA DÃO CURSO PROFISSIONAL DE TÉCNICO DE GESTÃO E PROGRAMAÇÃO DE SISTEMAS INFORMÁTICOS 2012-2015 PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO MÓDULO 2 Mecanismos de Controlo de

Leia mais

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá. INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,

Leia mais

Estruturas de Dados I

Estruturas de Dados I UFES - Curso de verão 2011 Estruturas de Dados I Profa. Juliana Pinheiro Campos jupcampos@gmail.com Árvores binárias de busca (ou São árvores projetadas para dar suporte a operações de busca de forma eficiente.

Leia mais

ESTRUTURAS DE DADOS I. Notas de Aula. Prof. Dr. Gilberto Nakamiti

ESTRUTURAS DE DADOS I. Notas de Aula. Prof. Dr. Gilberto Nakamiti ESTRUTURAS DE DADOS I Notas de Aula 1 SUMÁRIO 1. INTRODUÇÃO... 2 1.1 Array (vetores)... 2 2. BUSCA DE ELEMENTOS... 3 2.1 Busca Seqüencial... 3 2.2 Busca Binária... 3 2.3 Busca Indexada... 3 2.4 Busca Hash...

Leia mais

Pesquisa: localização de um Registo num Ficheiro (para aceder ao registo: ler/alterar informação) R. P. António Viera, 23. R. Carlos Seixas, 9, 6º

Pesquisa: localização de um Registo num Ficheiro (para aceder ao registo: ler/alterar informação) R. P. António Viera, 23. R. Carlos Seixas, 9, 6º Pesquisa Pesquisa: localização de um Registo num Ficheiro (para aceder ao registo: ler/alterar informação) Ficheiro (ou tabela) Campos Nome Endereço Telefone Antunes, João A. R. P. António Viera, 23 720456

Leia mais

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu 1 Programação Não Linear Aula 25: Programação Não-Linear - Funções de Uma única variável Mínimo; Mínimo Global; Mínimo Local; Optimização Irrestrita; Condições Óptimas; Método da Bissecção; Método de Newton.

Leia mais

Árvores Binárias de Busca

Á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

Leia mais

Algoritmo. Prof. Anderson Almeida Ferreira. Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação

Algoritmo. Prof. Anderson Almeida Ferreira. Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação 1 Algoritmo Prof. Anderson Almeida Ferreira Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação Desenvolvimento de programas 2 Análise do problema Desenvolvimento

Leia mais

OFICINA DE JOGOS APOSTILA DO PROFESSOR

OFICINA DE JOGOS APOSTILA DO PROFESSOR OFICINA DE JOGOS APOSTILA DO PROFESSOR APRESENTAÇÃO Olá professor, Essa apostila apresenta jogos matemáticos que foram doados a uma escola de Blumenau como parte de uma ação do Movimento Nós Podemos Blumenau.

Leia mais

2ª Lista de Exercícios

2ª Lista de Exercícios Universidade Federal de Minas Gerais Departamento de Ciência da Computação Algoritmos e Estruturas de Dados II (Turmas M, N, W, F) 1º Semestre de 2012 Profs. Camilo Oliveira, Gisele Pappa, Ítalo Cunha,

Leia mais

Métodos de Pesquisa em Memória Primária

Métodos de Pesquisa em Memória Primária Algoritmos e Estrutura de Dados II Métodos de Pesquisa em Memória Primária Prof Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Pesquisa Por pesquisa (procura ou busca) entende-se o ato

Leia mais

Instrumento de Intervenção

Instrumento de Intervenção UNIVERSIDADE TÉCNICA DE LISBOA FACULDADE DE MOTRICIDADE HUMANA ANEXO Instrumento de Intervenção Ana Isabel Mendes Codeço 2010 Planeamento da Sessão nº. 1 Data: 04/03/2010 Objectivo Geral: Desenvolver a

Leia mais

Resolução de Problemas Com Procura. Capítulo 3

Resolução de Problemas Com Procura. Capítulo 3 Resolução de Problemas Com Procura Capítulo 3 Sumário Agentes que resolvem problemas Tipos de problemas Formulação de problemas Exemplos de problemas Algoritmos de procura básicos Eliminação de estados

Leia mais

Algoritmos de pesquisa. Tabelas de dispersão/hash

Algoritmos de pesquisa. Tabelas de dispersão/hash Algoritmos de pesquisa Tabelas de dispersão/hash Introdução Motivação: Considerar o problema de pesquisar um determinado valor num vetor (array). Se o vetor não está ordenado, a pesquisa requer O(n) de

Leia mais

Estruturas de Repetição. Programação em Java 2006-2007. Estruturas de Repetição

Estruturas de Repetição. Programação em Java 2006-2007. Estruturas de Repetição Aula 4 Estruturas de Repetição Programação em Java 2006-2007 Estruturas de Repetição As estruturas repetitivas ou ciclos permitem repetir um conjunto de uma ou mais instruções O Java apresenta três variantes

Leia mais

Árvores de Suporte de Custo Mínimo

Árvores de Suporte de Custo Mínimo Árvores de Suporte de Custo Mínimo Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Árvores de Suporte de Custo Mínimo 2014/2015 1 / 28 Árvore de Suporte Uma árvore de suporte ou árvore de extensão

Leia mais

EAD Árvore árvore binária

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

Leia mais

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis. 3. Tabelas de Hash As tabelas de hash são um tipo de estruturação para o armazenamento de informação, de uma forma extremamente simples, fácil de se implementar e intuitiva de se organizar grandes quantidades

Leia mais