Estruturas de Dados 2

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

Download "Estruturas de Dados 2"

Transcrição

1 Estruturas de Dados 2 Recorrências IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/31

2 Recorrências Análise da Eficiência de Algoritmos: Velocidade de Execução; Análise Matemática: Algoritmos não-recursivo; Algoritmos recursivos (recorrências); IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 2/31

3 Recorrências Capítulo 4 CLRS(Cormem, 2 nd Edição, 2001) Introdução Exemplo de Análise de Recorrência: MergeSort Conclusão: T(n) = Θ ( n*lg(n) ) Mas como chegar a esta conclusão? Três métodos: Método da Substituição Método da Árvore de Recursão Método Master IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 3/31

4 Recorrências - Método da Substituição Basta chutar uma resposta (limite assintótico) e em seguida, provar por indução que funciona! Por exemplo, suponha a recursão da forma: T(n) = 2 T( n/2 ) + n Supondo que a solução seja T(n) = O ( n*lg(n) ) Agora, como provamos que isto é verdade? Basta provar que T(n) c * n * lg (n) para algum c > 0. Iniciamos assumindo que a fórmula é verdade para n/2 : T( n/2 ) c * n/2 * lg ( n/2 ) Então verificamos se a recorrência pode ser provada!!! IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 4/31

5 Recorrências - Método da Substituição Método da Substituição Agora substituímos esta fórmula na recorrência: T(n) 2(c n/2 lg( n/2 )) + n c n lg(n/2) + n = c n lg n c n lg 2 + n = c n lg n c n + n c n lg n, para qualquer c 1 Agora basta provar a Base da Indução:pela definição, T(1)=1. Calculando pelo nosso chute, T(1) c *1* lg mas lg 1 = 0, então nenhuma constante c satisfaz... IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 5/31

6 Recorrências - Método da Substituição Mas se não funciona para a base, não se pode aceitar a indução......e agora, como resolver? Devemos lembrar que a análise assintótica apenas exige que T(n) = c*n*lg(n) a partir de um n n 0, onde n 0 é uma constante escolhida adequadamente! Se, ao invés de 1, selecionarmos a base da nossa indução como sendo n=2 e n=3 (pois só n=2 ainda dependeria de n=1...), temos: T(2) = 2 T(1)+ 2 = 4, e T(3) = 2 T( 3/2 ) + 3 = 2*1+3 = 5 Será que o nosso chute consegue satisfazer estes casos base? IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 6/31

7 Recorrências - Método da Substituição T(2) c * 2 * lg(2) T(3) c * 3 * lg(3) Como lg(2) = 1, e lg(3) = 1.57, fazendo a constante c 2, a base está verificada. Desta forma, conseguimos verificar (por indução) que nosso chute realmente satisfaz a recorrência, portanto provamos que T(n) = O(n*lg(n)) para esta recursão! Problema desta técnica: como acertar o chute? IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 7/31

8 Recorrências - Método da Substituição T(2) c * 2 * lg(2) T(3) c * 3 * lg(3) Como lg(2) = 1, e lg(3) = 1.57, fazendo a constante c 2, a base está verificada. Desta forma, conseguimos verificar (por indução) que nosso chute realmente satisfaz a recorrência, portanto provamos que T(n) = O(n*lg(n)) para esta recursão! Problema desta técnica: como acertar o chute? IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 8/31

9 Recorrências - Método da Substituição Problema desta técnica: como acertar o chute? Comparação com soluções anteriormente conhecidas: T(n) = 2 T( n/2 +17) + n Qual chute você daria? T(n) = O(n lg(n))???? Mas e a constante 17? Será que dá alguma diferença? Fica como Exercício!!!!! IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 9/31

10 Recorrências - Método da Substituição Mais alguns detalhes: Considere a seguinte recorrência: T(n) = T( n/2 ) + T( n/2 ) + 1 Qual chute você daria? T(n) = O(n), provar que T(n) cn Substituindo, temos: T(n) c*n/2+c*n/2+1 = cn +1 Porém isto não implica que T(n) cn para nenhum c Errei por 1?Como resolver, se achamos que isto é O(n)? IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 10/31

11 Recorrências - Método da Substituição Utilizando outra hipótese, por exemplo T(n) cn b Substituindo, temos: T(n) (c*n/2-b)+(c*n/2-b)+1 = cn -2b +1 cn -b para todo b 1. Basta escolher c de forma a satisfazer as condições da base, e conseguimos provar que T(n)=O(n)!!! Mas cuidado... Lembra de T(n) = 2 T( n/2 ) + n? Supondo que a solução seja T(n) = O (n), ou T(n) cn T(n) 2*c*n/2 + n = cn +n, Portanto está provado que T(n)=O(n)? NÃO!!!!! Porquê? IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 11/31

12 Recorrências - Método da Substituição Problema desta técnica: como acertar o chute? Técnicas alternativas: iniciar provando limites superiores(o) e inferiores(ω), e posteriormente ir apertando os limites (aproximações sucessivas). Utilizar o método da árvore de recursão Exercícios: Provar que T(n) = T( n/2 ) + 1 é O(lg n) Provar que T(n) = 2T( n/2 ) + n é Ω(n lg n). É possível concluir que T(n) é Ω (n lg n)? IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 12/31

13 Recorrências - Árvore de Recursão Método da Árvore de Recursão Boa alternativa para obter estimativas (chutes) para o método da substituição Não pode ser utilizado como forma de prova, por não ser formal... Idéia: Avaliar como funciona a recursão, somando os seus custos, para chegar a um limite assintótico... Exemplo: T(n) = T(n/4) + T(n/2) + n² Qual seria seu chute? O(n²)? O(n lg n)?o(n² lg n)?o(n lg n²) IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 13/31

14 Recorrências - Árvore de Recursão T(n) = T(n/4) + T(n/2) + n² n² T(n/4) T(n/2) IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 14/31

15 Recorrências - Árvore de Recursão T(n) = T(n/4) + T(n/2) + n² n² (n/4)² (n/2)² T(n/16) T(n/8) T(n/8) T(n/4) IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 15/31

16 Recorrências - Árvore de Recursão T(n) = T(n/4) + T(n/2) + n² (n/16)² : : Θ(1) n² (n/4)² (n/2)² (n/8)² (n/8)² (n/4)² IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 16/31

17 Recorrências - Árvore de Recursão T(n) = T(n/4) + T(n/2) + n² (Somando:) (n/16)² : : Θ(1) n²... =n² (n/4)² (n/2)² (n/8)² (n/8)² (n/4)² IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 17/31

18 Recorrências - Árvore de Recursão T(n) = T(n/4) + T(n/2) + n² (Somando:) (n/16)² : : Θ(1) n²... =n² (n/4)² (n/2)²... = 5 n² 16 (n/8)² (n/8)² (n/4)² IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 18/31

19 Recorrências - Árvore de Recursão T(n) = T(n/4) + T(n/2) + n² (Somando:) n²... =n² (n/4)² (n/2)²... = 5 n² 16 (n/16)² (n/8)² (n/8)² (n/4)²...= 25 n² : 256 : Θ(1) n²+(5/16)n²+(25/256)n² IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 19/31

20 Recorrências - Árvore de Recursão T(n) = T(n/4) + T(n/2) + n² (Somando:) n²... =n² (n/4)² (n/2)²... = 5 n² 16 (n/16)² (n/8)² (n/8)² (n/4)²...= 25 n² : 256 : Θ(1) n²(1+(5/16)+(25/256)+...) IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 20/31

21 Recorrências - Árvore de Recursão T(n) = T(n/4) + T(n/2) + n² (Somando:) n²... =n² (n/4)² (n/2)²... = 5 n² 16 (n/16)² (n/8)² (n/8)² (n/4)²...= 25 n² : 256 : Θ(1) Θ(n²) IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 21/31

22 Recorrências - Árvore de Recursão T(n) = T(n/4) + T(n/2) + n² é Θ(n²)???? Somente provando pelo Método da Substituição para ter certeza realmente... Exercício: Construa a árvore de recursão para T(n) = 4T(n/2) + n E verifique os limites assintóticos(superior e inferior) pelo método da substituição IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 22/31

23 Recorrências Método Master Fornece uma receita para resolução de recorrências da forma: T(n) = at(n/b) +f(n) onde a 1, e b>1 são constantes e f(n) é uma função assintoticamente positiva. O método Master resolve recorrências de algoritmos do tipo dividir-e-conquistar, onde: um problema de tamanho n é dividido em a subproblemas, cada um resolvido em tempo T(n/b). A função f(n) descreve o custo de dividir o problema, e combinar as soluções parciais. IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 23/31

24 Recorrências - Método Master O método Master requer a memorização de três casos base, mas isto permite a resolução de muitas recorrências com facilidade. 1. f(n) = O(n log b a ε ) para alguma constante ε> f(n) = Θ(n log b a ). 3. f(n) = Ω(n log b a+ε ) para alguma constante ε> 0, e af(n/b) cf(n) para alguma constante c < 1 e n suficientemente grande. IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 24/31

25 Caso 1: Recorrências - Método Master 1. f(n) = O(n log b a ε ) para alguma constante ε> 0. Se isto for verdade, f(n) cresce polinomialmente mais lentamente que n log b a (por um factor n ε ). Solução: T(n) = Θ(n log b a ). IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 25/31

26 Caso 2: Recorrências - Método Master 2. f(n) = Θ(n log b a ). Se isto for verdade, f(n) e n log b a crescem a taxas similares. Solução: T(n) = Θ(n log b a lg n). IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 26/31

27 Caso 3: Recorrências - Método Master 3. f(n) =Ω(n log b a+ε ) para alguma constante ε> 0, e af(n/b) cf(n) para alguma constante c < 1 e n suficientemente grande. Se isto for verdade, f(n) cresce polinomialmente mais rapidamente que n log b a a uma taxa n ε. Solução: T(n) = Θ(f(n)). IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 27/31

28 Recorrências - Método Master Exemplos: T(n) = 4T(n/2) + n a =4, b= 2 n log b a =n 2 ; f(n) = n. CASo1: f(n) = O(n 2-ε ) para ε= 1. T(n) = Θ(n 2 ). IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 28/31

29 Recorrências - Método Master Exemplos: T(n) = 4T(n/2) + n 2 a =4, b= 2 n log b a =n 2 ; f(n) = n 2. CASo2: f(n) = Θ(n 2 ). T(n) = Θ(n 2 lg n). IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 29/31

30 Recorrências - Método Master Exemplos: T(n) = 4T(n/2) + n 3 a =4, b= 2 n log b a =n 2 ; f(n) = n 3. CASo3: f(n) = Ω(n2+ε ), para ε=1 e 4(n/2) 3 cn 3 para c= 1/2. T(n) = Θ(n 3 ). IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 30/31

31 Recorrências - Método Master Exemplos: T(n) = 2T(n/2) + n lg n a =2, b= 2 n log b a =n ; f(n) = n lg n. O método Master não se aplica! Por quê? O teste: af(n/b) cf(n) para c < 1 e n grande: 2(n/2 lg(n/2)) =n lg(n/2) c n lg(n) (OK!) Mas f(n) =Ω(nlog b a+ε ) para alguma constante ε> 0? f(n)/n log a b =f(n)/n=n lg n/n = lg n. lg n < n ε para algum ε> 0??? NÃO!!!!! (não é polinomialmente menor!!!!!) IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 31/31

Busca Binária. Aula 05. Busca em um vetor ordenado. Análise do Busca Binária. Equações com Recorrência

Busca Binária. Aula 05. Busca em um vetor ordenado. Análise do Busca Binária. Equações com Recorrência Busca Binária Aula 05 Equações com Recorrência Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Idéia: Divisão e Conquista Busca_Binária(A[l...r],k) 1:if r < lthen 2: index = 1

Leia mais

Algoritmos e Estrutura de Dados. Aula 04 Recorrência Prof. Tiago A. E. Ferreira

Algoritmos e Estrutura de Dados. Aula 04 Recorrência Prof. Tiago A. E. Ferreira Algoritmos e Estrutura de Dados Aula 04 Recorrência Prof. Tiago A. E. Ferreira Esta Aula... Nesta aula veremos três métodos para resolver recorrência: Método da substituição É suposto um limite hipotético

Leia mais

Análise de algoritmos

Análise de algoritmos Análise de algoritmos Introdução à Ciência de Computação II Baseados nos Slides do Prof. Dr. Thiago A. S. Pardo Análise de algoritmos Existem basicamente 2 formas de estimar o tempo de execução de programas

Leia mais

Análise de algoritmos

Análise de algoritmos Análise de algoritmos Recorrências Conteúdo Introdução O método mestre Referências Introdução O tempo de execução de um algoritmo recursivo pode frequentemente ser descrito por uma equação de recorrência.

Leia mais

Estruturas de Dados 2

Estruturas de Dados 2 Estruturas de Dados 2 Técnicas de Projeto de Algoritmos Dividir e Conquistar IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/83 Projeto de Algoritmos por Divisão

Leia mais

Mergesort. Aula 04. Algoritmo Mergesort. Divisão e Conquista. Divisão e Conquista- MergeSort

Mergesort. Aula 04. Algoritmo Mergesort. Divisão e Conquista. Divisão e Conquista- MergeSort Mergesort Aula 0 Divisão e Conquista- MergeSort Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Mergesort é um algoritmo de ordenação recursivo Ele recursivamente ordena as duas

Leia mais

Análise de Algoritmos

Análise de Algoritmos Análise de Algoritmos Estes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 1 Introdução CLRS 2.2 e 3.1 AU 3.3, 3.4 e 3.6 Essas transparências foram

Leia mais

Aula 1. Teoria da Computação III

Aula 1. Teoria da Computação III Aula 1 Teoria da Computação III Complexidade de Algoritmos Um problema pode ser resolvido através de diversos algoritmos; O fato de um algoritmo resolver um dado problema não significa que seja aceitável

Leia mais

É interessante comparar algoritmos para valores grandes de n. Para valores pequenos de n, mesmo um algoritmo ineficiente não custa muito para ser

É interessante comparar algoritmos para valores grandes de n. Para valores pequenos de n, mesmo um algoritmo ineficiente não custa muito para ser É interessante comparar algoritmos para valores grandes de n. Para valores pequenos de n, mesmo um algoritmo ineficiente não custa muito para ser executado 1 Fazendo estimativas e simplificações... O número

Leia mais

Análise de Algoritmos

Análise de Algoritmos Análise de Algoritmos CLRS 2.2 e 3.1 AU 3.3, 3.4 e 3.6 Essas transparências foram adaptadas das transparências do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 1 Intuitivamente...

Leia mais

Lista de Exercícios 6: Soluções Funções

Lista de Exercícios 6: Soluções Funções UFMG/ICEx/DCC DCC Matemática Discreta Lista de Exercícios 6: Soluções Funções Ciências Exatas & Engenharias o Semestre de 06 Conceitos. Determine e justifique se a seguinte afirmação é verdadeira ou não

Leia mais

Análise e Síntese de Algoritmos. Revisão CLRS, Cap. 4, 6

Análise e Síntese de Algoritmos. Revisão CLRS, Cap. 4, 6 Análise e Síntese de Algoritmos Revisão CLRS, Cap. 4, 6 Contexto Revisão Algoritmos e complexidade Notação Fundamentos: somatórios, logaritmos, etc. Exemplos de algoritmos Ordenação Procura Selecção 2007/2008

Leia mais

Estruturas de Dados 2

Estruturas de Dados 2 Estruturas de Dados 2 Algoritmos de Ordenação em Tempo Linear IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/38 Algoritmos de Ordenação em Tempo Linear Limite Assintótico

Leia mais

Análise e Complexidade de Algoritmos

Análise e Complexidade de Algoritmos Análise e Complexidade de Algoritmos Professor Ariel da Silva Dias Algoritmos Divisão e Conquista Construção incremental Resolver o problema para um sub-conjunto dos elementos de entrada; Então, adicionar

Leia mais

Lista de Exercícios 6 Funções

Lista de Exercícios 6 Funções UFMG/ICEx/DCC DCC Matemática Discreta Lista de Exercícios 6 Funções Ciências Exatas & Engenharias o Semestre de 06 Conceitos. Determine e justifique se a seguinte afirmação é verdadeira ou não para todas

Leia mais

ANÁLISE DE ALGORITMOS

ANÁLISE DE ALGORITMOS ANÁLISE DE ALGORITMOS Paulo Feofiloff Instituto de Matemática e Estatística Universidade de São Paulo agosto 2009 Introdução P. Feofiloff (IME-USP) Análise de Algoritmos agosto 2009 2 / 102 Introdução

Leia mais

Análise de algoritmos

Análise de algoritmos Análise de algoritmos Introdução à Ciência da Computação 2 Baseado nos slides do Prof. Thiago A. S. Pardo Algoritmo Noção geral: conjunto de instruções que devem ser seguidas para solucionar um determinado

Leia mais

Resposta pergunta 1: i n t dectobin ( i n t n ) { i n t mdc( i n t x, i n t y ) ; void testpalindromo ( ) ; i n t main ( ) { testmult ( ) ;

Resposta pergunta 1: i n t dectobin ( i n t n ) { i n t mdc( i n t x, i n t y ) ; void testpalindromo ( ) ; i n t main ( ) { testmult ( ) ; SSC0503 - Introdução à Ciência de Computação II Respostas da 2 a Lista Professor: Claudio Fabiano Motta Toledo (claudio@icmc.usp.br) Estagiário PAE: Jesimar da Silva Arantes (jesimar.arantes@usp.br) Resposta

Leia mais

Análise de Algoritmos

Análise de Algoritmos Algoritmos p. 1/28 Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 2/28 Análise de Algoritmos CLRS 7 Essas transparências

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos O que é um algoritmo? Sequência bem definida e finita de cálculos que, para um dado valor de entrada, retorna uma saída desejada/esperada. Na computação: Uma descrição de como

Leia mais

Tópico 5 Algoritmos de Ordenação. Parte I - métodos de ordenação: inserção, mergesort, heapsort e quicksort.

Tópico 5 Algoritmos de Ordenação. Parte I - métodos de ordenação: inserção, mergesort, heapsort e quicksort. Tópico 5 Algoritmos de Ordenação Parte I - métodos de ordenação: inserção, mergesort, heapsort e quicksort. 1 Problema Computacional: Ordenação Problema computacional que surge em diversas situações. Definição:

Leia mais

Solução de Recorrências

Solução de Recorrências CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Solução de Recorrências Algoritmos e Estruturas de Dados I Natália Batista https://sites.google.com/site/nataliacefetmg/ nataliabatista@decom.cefetmg.br

Leia mais

Análise de Problemas Recursivos. Algoritmos e Estruturas de Dados Flavio Figueiredo (

Análise de Problemas Recursivos. Algoritmos e Estruturas de Dados Flavio Figueiredo ( Análise de Problemas Recursivos Algoritmos e Estruturas de Dados 2 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Lembrando de Recursividade Procedimento que chama a si mesmo Recursividade permite

Leia mais

Divisão e Conquista. Fernando Lobo. Algoritmos e Estrutura de Dados II. É uma técnica para resolver problemas (veremos outras técnicas mais adiante).

Divisão e Conquista. Fernando Lobo. Algoritmos e Estrutura de Dados II. É uma técnica para resolver problemas (veremos outras técnicas mais adiante). Divisão e Conquista Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 27 Divisão e Conquista É uma técnica para resolver problemas (veremos outras técnicas mais adiante). Consiste em 3 passos: Dividir

Leia mais

Algoritmos de ordenação Quicksort

Algoritmos de ordenação Quicksort Algoritmos de ordenação Quicksort Sumário Introdução Descrição do quicksort Desempenho do quicksort Pior caso Melhor caso Particionamento balanceado Versão aleatória do quicksort Análise do quicksort Pior

Leia mais

Introdução à Análise Algoritmos

Introdução à Análise Algoritmos Introdução à Análise Algoritmos Notas de aula da disciplina IME 4-182 Estruturas de Dados I Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) abril/218 Ordenação por SELEÇÃO: Idéia: Dado um vetor

Leia mais

Algoritmos de Ordenação: QuickSort

Algoritmos de Ordenação: QuickSort Algoritmos de Ordenação: QuickSort ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo dbeder@usp.br 10/2008 Material

Leia mais

Divisão e Conquista. Norton T. Roman. Apostila baseada nos trabalhos de Cid de Souza, Cândida da Silva e Delano M. Beder

Divisão e Conquista. Norton T. Roman. Apostila baseada nos trabalhos de Cid de Souza, Cândida da Silva e Delano M. Beder Divisão e Conquista Norton T. Roman Apostila baseada nos trabalhos de Cid de Souza, Cândida da Silva e Delano M. Beder Divisão e Conquista Construção incremental Ex: Consiste em, inicialmente, resolver

Leia mais

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Análise de Algoritmos A. G. Silva Baseado nos materiais de Souza, Silva, Lee, Rezende, Miyazawa Unicamp Ribeiro FCUP Manber, Introduction to Algorithms (1989) Livro 06 de abril de 2018 Conteúdo

Leia mais

Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

Estruturas de Dados, 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 2) Algoritmos recursivos Indução matemática, recursão, recorrências Indução matemática Uma

Leia mais

Análise de Algoritmos

Análise de Algoritmos Algoritmos p. 1/25 Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 2/25 Ordenação em tempo linear CLRS cap 8 Algoritmos

Leia mais

Uma recorrência é uma equação que descreve uma função em termos do seu valor em entradas menores

Uma recorrência é uma equação que descreve uma função em termos do seu valor em entradas menores Uma recorrêcia é uma equação que descreve uma fução em termos do seu valor em etradas meores T( ) O( 1) T( 1) 1 se 1 se 1 Útil para aálise de complexidade de algoritmos recursivos ou do tipo dividir para

Leia mais

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Análise de Algoritmos A. G. Silva Baseado nos materiais de Souza, Silva, Lee, Rezende, Miyazawa Unicamp Ribeiro FCUP 18 de agosto de 2017 Conteúdo programático Introdução (4 horas/aula) Notação

Leia mais

Análise e Projeto de Algoritmos

Análise e Projeto de Algoritmos Análise e Projeto de Algoritmos Prof. Eduardo Barrére www.ufjf.br/pgcc www.dcc.ufjf.br eduardo.barrere@ice.ufjf.br www.barrere.ufjf.br Consumo de tempo assintótico Seja A um algoritmo para um problema

Leia mais

ANÁLISE DE ALGORITMOS: PARTE 4

ANÁLISE DE ALGORITMOS: PARTE 4 ANÁLISE DE ALGORITMOS: PARTE 4 Prof. André Backes 2 Função recursiva Função que chama a si mesma durante a sua execução Exemplo: fatorial de um número N. Para N = 4 temos 4! = 4 * 3! 3! = 3 * 2! 2! = 2

Leia mais

Projeto e Análise de Algoritmos Aula 4: Dividir para Conquistar ou Divisão e Conquista ( )

Projeto e Análise de Algoritmos Aula 4: Dividir para Conquistar ou Divisão e Conquista ( ) Projeto e Análise de Algoritmos Aula 4: Dividir para Conquistar ou Divisão e Conquista (2.1-2.2) DECOM/UFOP 2013/1 5º. Período Anderson Almeida Ferreira Adaptado do material desenvolvido por Andréa Iabrudi

Leia mais

Aula 02 Notação Assintótica p. 4. Usodanotação O. Notação O. Notação O, Ω, ΘeExemplos. Intuitivamente... O(f(n)) funções que não crescem mais

Aula 02 Notação Assintótica p. 4. Usodanotação O. Notação O. Notação O, Ω, ΘeExemplos. Intuitivamente... O(f(n)) funções que não crescem mais Notação O Aula 02 Notação Assintótica Notação O, Ω, Θe Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Intuitivamente... O() funções que não crescem mais rápido que funções menores

Leia mais

PCC104 - Projeto e Análise de Algoritmos

PCC104 - Projeto e Análise de Algoritmos PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 7 de outubro de 2016 Marco Antonio

Leia mais

Complexidade assintótica de programas

Complexidade assintótica de programas Complexidade assintótica de programas Técnicas de análise de algoritmos são consideradas partes integrantes do processo moderno de resolver problemas, permitindo escolher, de forma racional, um dentre

Leia mais

Técnicas de projeto de algoritmos: Indução

Técnicas de projeto de algoritmos: Indução Técnicas de projeto de algoritmos: Indução ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo dbeder@usp.br 08/2008

Leia mais

CT-234. Estruturas de Dados, 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 Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural Carlos Alberto Alonso Sanches Bibliografia T.H. Cormen, C.E. Leiserson and R.L. Rivest Introduction to algorithms R. Sedgewick

Leia mais

Análise de Complexidade para algoritmos iterativos e recursivos

Análise de Complexidade para algoritmos iterativos e recursivos Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa Análise de Complexidade para algoritmos iterativos e recursivos Algoritmos iterativos - complexidade expressa através de somatórios. Algoritmos

Leia mais

Aula 2. Divisão e conquista. Exemplo 1: Número de inversões de uma permutação (problema 2-4 do CLRS; veja também sec 5.4 do KT)

Aula 2. Divisão e conquista. Exemplo 1: Número de inversões de uma permutação (problema 2-4 do CLRS; veja também sec 5.4 do KT) Aula 2 Divisão e conquista Exemplo 1: Número de inversões de uma permutação (problema 2-4 do CLRS; veja também sec 5.4 do KT) Exemplo 2: Par de pontos mais próximos (sec 33.4 do CLRS) Essas transparências

Leia mais

ANÁLISE DE ALGORITMOS: PARTE 3

ANÁLISE DE ALGORITMOS: PARTE 3 ANÁLISE DE ALGORITMOS: PARTE 3 Prof. André Backes 2 A notação grande-o é a forma mais conhecida e utilizada de análise Complexidade do nosso algoritmo no pior caso Seja de tempo ou de espaço É o caso mais

Leia mais

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Análise de Algoritmos A. G. Silva Baseado nos materiais de Souza, Silva, Lee, Rezende, Miyazawa Unicamp Ribeiro FCUP Mariani UFSC Manber, Introduction to Algorithms (1989) Livro 16 de março de

Leia mais

Ordenação em tempo linear

Ordenação em tempo linear Ordenação em tempo linear CLRS cap 8 Algoritmos p. 1 Ordenação: limite inferior Problema: Rearranjar um vetor A[1..n] de modo que ele fique em ordem crescente. Existem algoritmos que consomem tempo O(n

Leia mais

Melhores momentos AULA 1. Algoritmos p.38/86

Melhores momentos AULA 1. Algoritmos p.38/86 Melhores momentos AULA 1 Algoritmos p.38/86 Definições x := inteiro i tal que i x < i + 1 x := inteiro j tal que j 1 < x j Exercício A1.B Mostre que n 1 2 n 2 n 2 e n 2 n 2 n + 1 2 para qualquer inteiro

Leia mais

Rascunho. CI165 - Análise de algoritmos (rascunho alterado constantemente) André Guedes Departamento de Informática UFPR. 7 de dezembro de 2016

Rascunho. CI165 - Análise de algoritmos (rascunho alterado constantemente) André Guedes Departamento de Informática UFPR. 7 de dezembro de 2016 CI165 - Análise de algoritmos (rascunho alterado constantemente) André Guedes Departamento de Informática UFPR 7 de dezembro de 016 Sumário 1 Apresentação do Curso Problemas computacionais e algoritmos

Leia mais

Análise e Complexidade de Algoritmos

Análise e Complexidade de Algoritmos Análise e Complexidade de Algoritmos Principais paradigmas do projeto de algoritmos - Recursividade - Tentativa e erro - Divisão e Conquista - Programação dinâmica - Algoritmos Gulosos e de Aproximação

Leia mais

Análise e Projeto de Algoritmos

Análise e Projeto de Algoritmos Análise e Projeto de Algoritmos Mestrado em Ciência da Computação Prof. Dr. Aparecido Nilceu Marana Faculdade de Ciências I think the design of efficient algorithms is somehow the core of computer science.

Leia mais

Análise de algoritmos. Sílvia Mara da Costa Campos Victer

Análise de algoritmos. Sílvia Mara da Costa Campos Victer Análise de algoritmos Sílvia Mara da Costa Campos Victer Análise de Algoritmos Critérios de análise, correção e eficiência. Análise de algoritmos: tempo de processamento e número de operações elementares,

Leia mais

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Análise de Algoritmos A. G. Silva Baseado nos materiais de Souza, Silva, Lee, Rezende, Miyazawa Unicamp Ribeiro FCUP Manber, Introduction to Algorithms (989) Livro de abril de 08 Conteúdo programático

Leia mais

Paradigmas de Projeto de Algoritmos

Paradigmas de Projeto de Algoritmos Projeto de Algoritmos Cap.2 Paradigmas de Projeto de Algoritmos 1 Conteúdo do Capítulo 2.1 Indução Paradigmas de Projeto de Algoritmos 2.2 Recursividade 2.2.1 Como Implementar Recursividade 2.2.2 Quando

Leia mais

Paradigmas de Projeto de Algoritmos

Paradigmas de Projeto de Algoritmos Projeto de Algoritmos Cap.2 Paradigmas de Projeto de Algoritmos 1 Conteúdo do Capítulo 2.1 Indução Paradigmas de Projeto de Algoritmos 2.2 Recursividade 2.2.1 Como Implementar Recursividade 2.2.2 Quando

Leia mais

Paradigmas de Projeto de Algoritmos

Paradigmas de Projeto de Algoritmos Paradigmas de Projeto de Algoritmos Última alteração: 2 de Setembro de 2010 Transparências elaboradas por Charles Ornelas Almeida, Israel Guerra e Nivio Ziviani Projeto de Algoritmos Cap.2 Paradigmas de

Leia mais

SCC Capítulo 3 Análise de Algoritmos - Parte 2

SCC Capítulo 3 Análise de Algoritmos - Parte 2 SCC-501 - Capítulo 3 Análise de Algoritmos - Parte 2 João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos

Leia mais

Comparação com Divisão e Conquista

Comparação com Divisão e Conquista Programação Dinâmica Programação Dinâmica Fernando Lobo Algoritmos e Estrutura de Dados II Outra técnica de concepção de algoritmos, tal como Divisão e Conquista ou Estratégias Greedy. O termo Programação

Leia mais

O termo Programação Dinâmica é um bocado infeliz.

O termo Programação Dinâmica é um bocado infeliz. Programação Dinâmica Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 18 Programação Dinâmica Outra técnica de concepção de algoritmos, tal como Divisão e Conquista ou Estratégias Greedy. O termo Programação

Leia mais

Rascunho. CI165 - Análise de algoritmos (rascunho alterado constantemente) André Guedes Departamento de Informática UFPR. 11 de junho de 2017

Rascunho. CI165 - Análise de algoritmos (rascunho alterado constantemente) André Guedes Departamento de Informática UFPR. 11 de junho de 2017 CI165 - Análise de algoritmos (rascunho alterado constantemente) André Guedes Departamento de Informática UFPR 11 de junho de 017 Sumário 1 Apresentação do Curso Problemas computacionais e algoritmos 4

Leia mais

Algoritmos e Estrutura de Dados. Algoritmos Prof. Tiago A. E. Ferreira

Algoritmos e Estrutura de Dados. Algoritmos Prof. Tiago A. E. Ferreira Algoritmos e Estrutura de Dados Aula 3 Conceitos Básicos de Algoritmos Prof. Tiago A. E. Ferreira Definição de Algoritmo Informalmente... Um Algoritmo é qualquer procedimento computacional bem definido

Leia mais

Introdução Paradigmas

Introdução Paradigmas Introdução Paradigmas Recursividade Algoritmos tentativa e erro Divisão e conquista Programação dinâmica Algoritmos gulosos Algoritmos aproximados 1 Introdução O projeto de algoritmos requer abordagens

Leia mais

Medida do Tempo de Execução de um Programa

Medida do Tempo de Execução de um Programa Medida do Tempo de Execução de um Programa Livro Projeto de Algoritmos Nívio Ziviani Capítulo 1 Seção 1.3.1 http://www2.dcc.ufmg.br/livros/algoritmos/ Comportamento Assintótico de Funções O parâmetro n

Leia mais

Melhores momentos AULA 3. Algoritmos p.148/188

Melhores momentos AULA 3. Algoritmos p.148/188 Melhores momentos AULA 3 Algoritmos p.148/188 Análise da intercalação Problema: Dados e crescentes, rearranjar de modo que ele fique em ordem crescente. Entra: Sai: Algoritmos p.149/188 Algoritmos p.150/188

Leia mais

I. Correção de Algoritmos Não-Recursivos

I. Correção de Algoritmos Não-Recursivos I. Correção de Algoritmos Não-Recursivos Nos exercícios a seguir, você deverá demonstrar a correção dos algoritmos por meio dos conceitos vistos nos slides da Aula 03. 1) Prove que o seguinte algoritmo

Leia mais

CES-11. Noções de complexidade de algoritmos. Complexidade de algoritmos. Avaliação do tempo de execução. Razão de crescimento desse tempo.

CES-11. Noções de complexidade de algoritmos. Complexidade de algoritmos. Avaliação do tempo de execução. Razão de crescimento desse tempo. CES-11 Noções de complexidade de algoritmos Complexidade de algoritmos Avaliação do tempo de execução Razão de crescimento desse tempo Notação O Exercícios COMPLEXIDADE DE ALGORITMOS Importância de análise

Leia mais

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Análise de Algoritmos Aula 01 Complexidade de Algoritmos Edirlei Soares de Lima O que é um algoritmo? Um conjunto de instruções executáveis para resolver um problema (são

Leia mais

Paradigmas de Projeto de Algoritmos

Paradigmas de Projeto de Algoritmos Projeto de Algoritmos Cap.2 Paradigmas de Projeto de Algoritmos 1 Paradigmas de Projeto de Algoritmos indução, recursividade, Paradigmas de Projeto de Algoritmos algoritmos tentativa e erro, divisão e

Leia mais

Paradigmas de Projeto de Algoritmos

Paradigmas de Projeto de Algoritmos Paradigmas de Projeto de Algoritmos Última alteração: 10 de Outubro de 2006 Transparências elaboradas por Charles Ornelas, Leonardo Rocha, Leonardo Mata e Nivio Ziviani Projeto de Algoritmos Cap.2 Paradigmas

Leia mais

Algoritmos de Ordenação. Profº Carlos Alberto T. Batista

Algoritmos de Ordenação. Profº Carlos Alberto T. Batista Algoritmos de Ordenação Profº Carlos Alberto T. Batista E-mail: carlos.batista@facape.br carlos36_batista@yahoo.com.br Por que ordenar os dados? Encontrar elementos em uma lista torna-se algo simples e

Leia mais

Algoritimos e Estruturas de Dados III CIC210

Algoritimos e Estruturas de Dados III CIC210 Algoritimos e Estruturas de Dados III CIC210 Divisão e Conquista Haroldo Gambini Santos Concurso Universidade Federal de Ouro Preto - UFOP 3 de setembro de 2009 Haroldo Gambini Santos Divisão e Conquista

Leia mais

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

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005. Ageda Aálise e Técicas de Algoritmos Jorge Figueiredo Relação de de Recorrêcia Derivado recorrêcia Resolvedo recorrêcia Aálise de de algoritmos recursivos Aálise de de Algoritmos Recursivos Itrodução A

Leia mais

Relações de Recorrência

Relações de Recorrência Relações de Recorrência Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 1 / 102 Este material é preparado usando como referências

Leia mais

Algoritmos e Estruturas de Dados MEE 2014/2015. Análise de Algoritmos e Complexidade

Algoritmos e Estruturas de Dados MEE 2014/2015. Análise de Algoritmos e Complexidade Algoritmos e Estruturas de Dados MEE 2014/2015 Análise de Algoritmos e Complexidade Análise de Algoritmos [1] Para avaliar e comparar o desempenho de dois algoritmos: executamos ambos (muitas vezes) para

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 05: Análise de Algoritmos (Parte 2) ASN Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Material elaborado com base nos slides do Prof. Reinaldo

Leia mais

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO. 4 a Lista de Exercícios Gabarito de algumas questões.

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO. 4 a Lista de Exercícios Gabarito de algumas questões. UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO MATEMÁTICA COMBINATÓRIA 4 a Lista de Exercícios Gabarito de algumas questões. Este gabarito foi feito direto no computador

Leia mais

Técnicas de projeto de algoritmos: Indução

Técnicas de projeto de algoritmos: Indução Técnicas de projeto de algoritmos: Indução ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo dbeder@usp.br 08/2008

Leia mais

Indução Matemática. Matemática Discreta. Indução Matemática. Mayara Midori Omai e Sheila Morais de Almeida UTFPR-PG. Abril

Indução Matemática. Matemática Discreta. Indução Matemática. Mayara Midori Omai e Sheila Morais de Almeida UTFPR-PG. Abril Matemática Discreta Indução Matemática Mayara Midori Omai e Sheila Morais de Almeida UTFPR-PG Abril - 2017 Indução Matemática Se desejamos provar que A(n) B(n) é verdade para números inteiros k maiores

Leia mais

Quantidade de memória necessária

Quantidade de memória necessária Tempo de processamento Um algoritmo que realiza uma tarefa em 10 horas é melhor que outro que realiza em 10 dias Quantidade de memória necessária Um algoritmo que usa 1MB de memória RAM é melhor que outro

Leia mais

O Teorema Mestre da Complexidade

O Teorema Mestre da Complexidade O Teorema Mestre da Complexidade Luís Fernando Schultz Xavier da Silveira Departamento de Informática e Estatística - INE - CTC - UFSC 23 de aril de 2010 Conteúdo 1 Enunciado 2 Preliminares Peso das Folhas

Leia mais

Projeto e Análise de Algoritmos Análise de Complexidade. Prof. Luiz Chaimowicz

Projeto e Análise de Algoritmos Análise de Complexidade. Prof. Luiz Chaimowicz Projeto e Análise de Algoritmos Análise de Complexidade Prof. Luiz Chaimowicz AGENDA Modulo 1 Data Assunto Capítulos 05/03 Algoritmos / Invariantes / Intro Análise de Complexidade 07/03 Não Haverá Aula

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 06: Análise de Algoritmos (Parte 3) Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes

Leia mais

ALGORITMOS AVANÇADOS UNIDADE I Análise de Algoritmo - Notação O. Luiz Leão

ALGORITMOS AVANÇADOS UNIDADE I Análise de Algoritmo - Notação O. Luiz Leão Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 1.1 - Algoritmo 1.2 - Estrutura de Dados 1.2.1 - Revisão de Programas em C++ envolvendo Vetores, Matrizes, Ponteiros, Registros

Leia mais

Árvores Binárias. Algoritmos e Estruturas de Dados Flavio Figueiredo (http://flaviovdf.github.io)

Árvores Binárias. Algoritmos e Estruturas de Dados Flavio Figueiredo (http://flaviovdf.github.io) Árvores Binárias Algoritmos e Estruturas de Dados 2 201-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Árvores 2 Raíz 3 Folhas 4 Nós Internos 5 Pais e Filhos 6 Descendentes Ancestrais 8 Irmãos 9 Níveis

Leia mais

Capítulo 6 Análise de Algoritmos Capítulo 6

Capítulo 6 Análise de Algoritmos Capítulo 6 666 Apêndice C Respostas e Sugestões para os Exercícios de Revisão 42. Consulte a Seção 5.4. 43. (a) Escoamento de memória.(b) Porque não há garantia que o cliente irá usá-la devidamente. 44. (a) Contagem

Leia mais

Análise e Síntese de Algoritmos. Programação Dinâmica CLRS, Cap. 15

Análise e Síntese de Algoritmos. Programação Dinâmica CLRS, Cap. 15 Análise e Síntese de Algoritmos Programação Dinâmica CLRS, Cap. 15 Contexto Revisões [CLRS, Cap. 1-10] Algoritmos em Grafos [CLRS, Cap. 22-26] Algoritmos elementares Árvores abrangentes Caminhos mais curtos

Leia mais

Algoritmos de Ordenação: MergeSort

Algoritmos de Ordenação: MergeSort Algoritmos de Ordenação: MergeSort ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo dbeder@usp.br 10/2008 Material

Leia mais

Modelagem com relações de recorrência. Exemplo: Determinada população dobra a cada ano; população inicial = 5 a n = população depois de n anos

Modelagem com relações de recorrência. Exemplo: Determinada população dobra a cada ano; população inicial = 5 a n = população depois de n anos Relações de recorrência 8. RELAÇÕES DE RECORRÊNCIA Introdução a relações de recorrência Modelagem com relações de recorrência Solução de relações de recorrência Exemplos e aplicações Relações de recorrência

Leia mais

Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013

Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013 Lista 1 - PMR2300 Fabio G. Cozman 3 de abril de 2013 1. Qual String é impressa pelo programa: p u b l i c c l a s s What { p u b l i c s t a t i c void f ( i n t x ) { x = 2 ; p u b l i c s t a t i c void

Leia mais

Melhores momentos AULA PASSADA. Complexidade Computacional p. 205

Melhores momentos AULA PASSADA. Complexidade Computacional p. 205 Melhores momentos AULA PASSADA Complexidade Computacional p. 205 MT multifita por MT fita única Duas máquinas são equivalentes se elas reconhecem a mesma linguagem. Teorema. Dada uma máquina de Turing

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 05: Análise de Algoritmos (Parte 2) Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes

Leia mais

Aula 06: Análise matemática de algoritmos recursivos

Aula 06: Análise matemática de algoritmos recursivos Aula 06: Análise matemática de algoritmos recursivos David Déharbe Programa de Pós-graduação em Sistemas e Computação Universidade Federal do Rio Grande do Norte Centro de Ciências Exatas e da Terra Departamento

Leia mais

Algoritmos e Complexidade

Algoritmos e Complexidade PMR2300 Escola Politécnica da Universidade de São Paulo Algoritmos Um algoritmo é um procedimento descrito passo a passo para resolução de um problema em tempo finito. Formalização: máquinas de Turing.

Leia mais

5. Invólucros Convexos no Plano (cont )

5. Invólucros Convexos no Plano (cont ) 5. Invólucros Convexos no Plano (cont ) Antonio Leslie Bajuelos Departamento de Matemática Universidade de Aveiro Mestrado em Matemática e Aplicações Complexidade Algorítmica Notação O Sejam T(n) e f(n)

Leia mais

Lista 1. 8 de abril de Algorithms: Capítulo 0, exercícios 1 e 2. Tardos: Todos exercícios do cap 2 do livro texto, exceto 7 e 8 letra b.

Lista 1. 8 de abril de Algorithms: Capítulo 0, exercícios 1 e 2. Tardos: Todos exercícios do cap 2 do livro texto, exceto 7 e 8 letra b. Lista 1 8 de abril de 2013 1 Exercícios Básicos 1.1 Na bibliografia Algorithms: Capítulo 0, exercícios 1 e 2. Tardos: Todos exercícios do cap 2 do livro texto, exceto 7 e 8 letra b. 1.2 Outros 1. Projete

Leia mais

Estruturas de Dados 2

Estruturas de Dados 2 Estruturas de Dados 2 Análise Empírica de Algoritmos IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/13 Análise da Eficiência de Algoritmos: Velocidade de Execução;

Leia mais

Divisão e Conquista: Par de Pontos mais Próximo

Divisão e Conquista: Par de Pontos mais Próximo Divisão e Conquista: Par de Pontos mais Próximo Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 18 Divisão e Conquista (cont.) Problema: Dado um conjunto de pontos no plano, obter o par de pontos

Leia mais

Estruturas de Dados 2

Estruturas de Dados 2 Estruturas de Dados 2 IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/34 Introdução Técnica de Projeto de Algoritmos utilizada para Problemas de Otimização; Idéia:

Leia mais

Algoritmos de Ordenação: Cota Inferior

Algoritmos de Ordenação: Cota Inferior Algoritmos de Ordenação: Cota Inferior ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo dbeder@usp.br 10/2008 Material

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos! Uma característica importante de qualquer algoritmo é seu tempo de execução! é possível determiná-lo através de métodos empíricos, considerando-se entradas diversas! é também

Leia mais