I. Correção de Algoritmos Não-Recursivos
|
|
- Mauro Caiado Guimarães
- 7 Há anos
- Visualizações:
Transcrição
1 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 para efetuar a exponenciação de números naturais está correto: unsigned power(unsigned a, unsigned b) x = 1; while (b > 0) x = x * a; b = b 1; return x; 2) Prove que o seguinte algoritmo para determinar o quadrado de um número natural está correto: unsigned quadrado(unsigned a) x = 0; i = 0; while (i < a) x = x + a; i = i + 1; return x; 3) Prove que o seguinte algoritmo para calcular o fatorial de um número natural está correto: unsigned fatorial(unsigned a) x = 1; i = 1; while (i <= a) x = x * i; i = i + 1; return x; 4) Prove que o seguinte algoritmo para calcular o produto de dois números naturais está correto: unsigned fatorial(unsigned a, unsigned b) x = 0; while (b > 0) if (b%2) x = x + a; x = 2 * x; b = b / 2; return x;
2 5) Considere o seguinte algoritmo para ordenar n números armazenados em um arranjo A, conhecido como ordenação por seleção : Localizar o menor elemento de A e permutar esse elemento com o elemento contido em A[0]. Em seguida, encontrar o segundo menor elemento de A e permutá-lo com o elemento A[1]. Proceder dessa maneira para os primeiros n 1 elementos de A. a) Escreva uma função em linguagem C para implementar este algoritmo. b) Demonstre a correção deste algoritmo, enunciando e demonstrando a validade de propriedades invariantes para os dois laços do algoritmo. c) Explique por que ele só precisa ser executado para os primeiros n 1 elementos, e não para todos os n elementos. 6) O bubblesort é um algoritmo de ordenação popular, que opera permutando repetidamente elementos adjacentes que estão fora de ordem. Observe a implementação do algoritmo bubblesort em linguagem C listada abaixo: void bubblesort(float A[], int n) for (i=0; i<n; i++) for (j=n-1; j>=i+1; j--) if (A[j] < A[j-1]) aux = A[j]; A[j] = A[j-1]; A[j-1] = aux; a) Enuncie uma propriedade invariante mantida pelo laço for interno e demonstre sua validade. b) Usando a condição de término garantida pela propriedade invariante que você enunciou e demonstrou no item anterior para o laço for interno, enuncie e demonstre uma propriedade invariante do laço for externo que garanta que, ao final do algoritmo, os elementos do vetor A estarão dispostos em ordem crescente. Dica: Seja A o arranjo resultante produzido pelo algoritmo, é necessário demonstrar que: A é uma permutação válida de A A [0] A [1]... A [n 1]
3 II. Limites Assintóticos de Funções Nos exercícios a seguir, você trabalhará com os conceitos de limites assintóticos abordados nos slides da Aula 05 do curso. 7) Determine um limite assintoticamente restrito para a função n 3 / n 2 100n + 3 em termos da notação Θ e demonstre este limite. 8) Mostre que log= Θlog 9) Sejam f(n) e g(n) funções assintoticamente não negativas. Usando a definição básica da notação Θ, prove que max(f(n), g(n)) = Θ(f(n) + g(n)). 10) Mostre que, para quaisquer constantes reais a e b, onde b > 0, + = 11) É verdade que 2 = O(2 )? Justifique. 12) É verdade que 2 = O(2 )? Justifique. 13) Podemos estender nossa notação ao caso de dois parâmetros n e m que podem tender a infinito independentemente a taxas distintas. Para uma dada função g(n,m), denotamos por O(g(n,m)) o conjunto de funções O(g(n,m)) = f(n,m) : existem constantes positivas c, e tais que 0 f(n, m) c.g(n,m) para todo n e m. Forneça definições correspondentes para Ωg(n,m)) e ϴ(g(n,m)). 14) A função! é polinomialmente limitada? Justifique. 15) A função! é polinomialmente limitada? Justifique. 16) Ordene as funções a seguir por ordem de crescimento; ou seja, encontre um arranjo gl, g2,..., g30 das funções que satisfazem a gl = Ω (g2), g2 = Ω (g3),..., g29 = Ω (g30) Particione sua lista em classes de equivalência tais que f(n) e g(n) estejam na mesma classe se e somente se f(n) = Θ(g(n)). Obs: a função lg significa log2.
4 17) Para cada afirmação abaixo, determine se ela é sempre verdadeira, nunca verdadeira, ou às vezes verdadeira e às vezes falsa para as funções assintoticamente não-negativas f e g. Se for sempre verdadeira ou nunca verdadeira, demonstre o motivo. Se for às vezes verdadeira e às vezes falsa, dê um exemplo em que é verdadeira e outro em que é falsa. a) = b) + =ϴmax, c) + =ϴ d) =Ω = e) 18) Verifique se a afirmação abaixo é verdadeira ou falsa. Justifique sua resposta. Sejam f e g funções assintoticamente não negativas. Então pelo menos uma dentre as relações f(n) = O(g(n)) e g(n) = O(f(n)) deve ser sempre verdadeira.
5 III. Análise Assintótica de Algoritmos Não-Recursivos Nos exercícios a seguir, você exercitará as técnicas de análise assintótica de algoritmos abordadas nos slides da Aula 05 do curso. 19) Considere o seguinte algoritmo para ordenar n números armazenados em um arranjo A, conhecido como ordenação por seleção : Localizar o menor elemento de A e permutar esse elemento com o elemento contido em A[0]. Em seguida, encontrar o segundo menor elemento de A e permutá-lo com o elemento A[1]. Proceder dessa maneira para os primeiros n 1 elementos de A. a) Escreva uma função em linguagem C para implementar este algoritmo (ver item a do exercício 5). b) Forneça limites assintóticos justos inferior (melhor caso) e superior (pior caso) para o tempo de execução deste algoritmo, usando as notações Ω e O. 20) Observe o algoritmo abaixo para ordenar n números armazenados em um arranjo A, onde um laço while é utilizado para fazer uma pesquisa sequencial varrendo o sub-arranjo A[0 j 1] de trás para frente à procura de um elemento maior que a chave A[j]: void insertionsort(float A[], int n) for (j=1; j<n; j++) chave = A[j]; i = j-1; while (i>0 && A[i]>chave) A[i+1] = A[i]; i = i-1; A[i+1] = chave; a) Forneça limites assintóticos justos inferior (melhor caso) e superior (pior caso) para o tempo de execução deste algoritmo, usando as notações Ω e O. b) Repare que, em cada iteração j do laço for externo, os elementos do sub-arranjo A[0 j 1] já estão ordenados. Verifique se é possível reduzir a complexidade de pior caso deste algoritmo para O(n.log(n)) se a pesquisa sequencial implementada no laço while for substituída por uma pesquisa binária. Justifique sua resposta.
6 21) O bubblesort é um algoritmo de ordenação popular, que opera permutando repetidamente elementos adjacentes que estão fora de ordem. Observe a implementação do algoritmo bubblesort em linguagem C listada abaixo: void bubblesort(float A[], int n) for (i=0; i<n; i++) for (j=n-1; j>=i+1; j--) if (A[j] < A[j-1]) aux = A[j]; A[j] = A[j-1]; A[j-1] = aux; a) Forneça limites assintóticos justos inferior (melhor caso) e superior (pior caso) para o tempo de execução deste algoritmo, usando as notações Ω e O. b) De que forma o laço for externo poderia ser modificado (sem nenhuma mudança no laço for interno) de modo a melhorar substancialmente o comportamento assintótico do algoritmo no melhor caso (arranjo de entrada previamente ordenado)? c) Qual seria o novo limite assintótico inferior justo após essa modificação?
7 IV. Implementação de Algoritmos Recursivos em C Os exercícios a seguir são um treinamento para você exercitar seu raciocínio na elaboração de algoritmos recursivos e também na implementação desses algoritmos em linguagem C. Todas as funções solicitadas nesses exercícios devem ser implementadas em linguagem C, sendo proibido o uso de estruturas de controle de laço (while e for). Chamadas recursivas devem ser sempre utilizadas em lugar de laços. Sugere-se o uso das técnicas descritas nos slides da Aula 06 do curso. Em alguns exercícios, pode ser conveniente reutilizar funções recursivas construídas em exercícios anteriores. 22) Escreva uma função recursiva que retorne a soma de todos os números naturais entre 1 e um número natural n. 23) Escreva uma função recursiva que retorne a soma de todos os números naturais que sejam múltiplos de 3 entre 1 e um número natural n. 24) Generalize a função recursiva do exercício anterior para trabalhar com múltiplos de 3 entre os números naturais m e n. 25) Generalize ainda mais a função recursiva do exercício anterior para trabalhar com múltiplos de um número natural k entre m e n. 26) Escreva uma função recursiva que retorne o valor do dígito mais significativo de um número natural n. 27) Escreva uma função recursiva que retorne a quantidade de dígitos de um número natural n. 28) Escreva uma função recursiva que retorne a soma de todos os dígitos de um natural n. 29) Escreva uma função recursiva que determine se um número natural é palíndrome (exemplos de números palíndromes : e ). Sugestão: tente uma estratégia de recursividade baseada no resultado obtido para o número correspondente ao argumento de entrada sem os dígitos mais e menos significativos. 30) Escreva uma função recursiva que determine se um número natural m pertence a um número natural n (exemplos: 12 pertence a , mas 327 não pertence a ). 31) Idem ao exercício anterior, mas sem ser necessário que os dígitos de m estejam contíguos em n (exemplos: 12 e 469 pertencem a , mas 327 não pertence a ). 32) Escreva uma função recursiva que retorne o valor do maior dígito de um natural n. 33) Escreva uma função recursiva que determine se todos os dígitos de um número natural n estão em ordem crescente.
8 34) Escreva uma função recursiva que determine se as somas de todos os pares de dígitos diametralmente opostos de um número natural n são as mesmas. Por exemplo, as somas em são as mesmas pois 1+4=3+2=5. Sugestão: a mesma fornecida para o exercício dos palíndromes. 35) Escreva uma função recursiva que retorne o valor correspondente a um número natural n com os seus dígitos reorganizados em ordem reversa. 36) Escreva uma função recursiva que determine se todos os dígitos de um número natural n são pares. 37) Escreva uma função recursiva para rodar os dígitos de um número natural n para a direita um total de k vezes. Por exemplo, rodar o número para a direita 3 vezes resulta no número ) Escreva uma função recursiva para deslocar os dígitos de um número natural n para a direita um total de k vezes descartando o dígito menos significativo a cada deslocamento. Por exemplo, deslocar o número para a direita 3 vezes resulta no número ) Escreva uma função recursiva para determinar se todos os dígitos de um número natural n são potências de 2. 40) Escreva uma função para determinar o k-ésimo maior dígito de um número natural n. 41) Escreva uma função que subtraia uma unidade de cada dígito de um número natural n. Por exemplo, para o número 4312 a sua função deve retornar como resultado o número Suponha que o seu número não contém dígitos 0. 42) Escreva uma função recursiva para multiplicar todos os dígitos de um número natural n. Por exemplo, para o número 3459 a sua função deve retornar , isto é, ) Escreva uma função recursiva que determine quantas vezes um dígito k ocorre em um número natural n. Por exemplo, o dígito 2 ocorre 3 vezes em ) Escreva uma função para determinar a maior soma de dígitos diametralmente opostos de um número natural n. 45) 26. Escreva uma função para determinar o menor número de vezes que eu tenho que rodar para a direita os dígitos de um número natural n de tal forma a obter o próprio número novamente. Por exemplo, rodando 2 vezes os dígitos do número este mesmo número é obtido como resultado. 46) Escreva uma função recursiva que determine se as somas dos dígitos diametralmente opostos de um número inteiro estão em ordem crescente de fora para dentro. Por exemplo: 2534 e têm essa propriedade, pois 2+4 = 6 < 5+3 = 8 < 9. 47) Escreva uma função para determinar se todas as somas dos dígitos diametralmente opostos de um número inteiro são números pares (neste caso 2534 tem essa propriedade, mas não).
9 V. Correção de Algoritmos Recursivos Nos exercícios a seguir, você deverá demonstrar a correção dos algoritmos recursivos pelo método indutivo abordado nos slides da Aula ) Prove por indução as afirmativas abaixo: a) Para todo 1, 1 2 = 1 2 3/4 b) Para todo 0, 2+1 = c) Para todo 1, = +1/2 d) Para todo 0, é divisível por 5. e) Para todo 0, = 1, sendo o n-ésimo número de Fibonacci. 49) Demonstre pelo método indutivo que o seguinte algoritmo recursivo retorna o valor 5 3, para todo 0. float g(float n) if (n<=1) return 2*n; return 8*g(n-1) 15*g(n-2); 50) Descreva uma implementação recursiva (em pseudo-código ou em linguagem C) para os algoritmos abaixo e demonstre sua correção pelo método indutivo: a) Busca Binária b) Ordenação por Inserção c) Ordenação por Intercalação
10 VI. Resolução de Recorrências Nos exercícios a seguir, você deverá solucionar as recorrências pelos métodos abordados nos slides da Aula ) Sejam a, b e c constantes não negativas. Prove que a solução para 1= c Tn= a.t/b + c.n =1 >1 para n uma potência de b é: On, a <, T(n) = On log n, a = b, On, a > 52) Resolva as equações de recorrência : a) b) Tn= 2T + n, para n > 1 T1=27 Tn = 7Tn/2 + n, para n > 1 T1 = 0 Tn= T n+ log n, para n 1 c) T1 = 1 Dica: use mudança de variáveis. 53) Usando substituição, resolva as recorrências : a) Mostre que a solução para T(n) = 2T( n/2 ) + 17 é O(n lg n). b) T(n) = 2T( n) ) Resolva assintoticamente as recorrências abaixo. Suponha T(n) constante para n pequeno. a) T(n) = 3T(n/2) + n lg n b) T(n) = 2T(n/2) + n/ lg n c) T(n) = 4T(n/2) + n lg n
11 55) Use indução matemática para mostrar que, quando n é uma potência exata de 2, a solução da recorrência 2 =2, = 2 + >2, >1 é = log. 56) Demonstre, com o auxílio de uma árvore de recursão, que a solução para a recorrência T(n) = T(n/3) + T(2n/3) + c.n, onde c é uma constante, é Ω(n.log(n)). 57) Use uma árvore de recursão para fornecer um limite assintoticamente restrito para a recorrência T(n) = T(.n) + T((1 ).n) + c.n, onde α é uma constante no intervalo 0 < < 1 e c > 0 também é uma constante. 58) Forneça limites assintóticos superiores e inferiores para T(n) em cada uma das recorrências a seguir. Suponha que T(n) seja constante para n suficientemente pequeno. Torne seus limites tão restritos quanto possível e justifique suas respostas. a) =2 + b) = + c) =16 + d) =7 + e) =7 + f) =2 + g) = 1+ h) = +1 i) =3 +log j) =5 + k) =4 + l) =3 +5+
12 m) =2 + n) = o T=T 1+ p T=T 1+log q = 2+2log r = + s) = 2 + log t) = 3 + log u) = + 2 v) = + ϴloglogn w) = x) = 7 + y) = z) = 2+ log aa) = + + ϴ bb) = ) Considere a recorrência = + +. Use o método da substituição para encontrar o limite superior mais justo possível para a recorrência, utilizando a notação O.
13 60) Demonstre um limite superior o mais justo possível (notação O) na solução de cada recorrência a seguir: a) =2 + b) = + +5 c) = 89+ϴ1 >, <, 61) Use o método da substituição para provar um limite inferior justo (notação Ω) na solução da seguinte recorrência: =4 + 62) Verifique se a afirmação abaixo é verdadeira ou falsa e justifique sua resposta: A solução para a recorrência =3 +logé =ϴlog.
14 VII. Análise Assintótica de Algoritmos Recursivos Nos exercícios a seguir, você determinará limites assintóticos para algoritmos recursivos, determinando as recorrências que descrevem o tempo de execução destes algoritmos e resolvendo estas recorrências, pelos métodos abordados nos slides da Aula ) A ordenação por inserção pode ser expressa sob a forma de um procedimento recursivo como a seguir. Para ordenar um arranjo A[1... n], ordenamos recursivamente o sub-arranjo A[1... n 1] e em seguida inserimos o elemento A[n] no sub-arranjo ordenado A[0... n 1]. Escreva uma recorrência para o tempo de execução dessa versão recursiva da ordenação por inserção. 64) Embora a ordenação por intercalação funcione no tempo de pior caso ϴ(n.log(n)) e a ordenação por inserção funcione no tempo de pior caso ϴ ( ), os fatores constantes na ordenação por inserção a tornam mais rápida para n pequeno. Assim, faz sentido usar a ordenação por inserção dentro da ordenação por intercalação quando os subproblemas se tornam suficientemente pequenos. Considere uma modificação na ordenação por intercalação, na qual n/k sub-listas de comprimento k são ordenadas usando-se a ordenação por inserção e, em seguida, intercaladas com o uso do mecanismo padrão de intercalação, onde k é um valor a ser determinado. a) Mostre que as n/k sub-listas, cada uma de comprimento k, podem ser ordenadas através da ordenação por inserção no tempo de pior caso ϴ(n.k). b) Mostre que as sub-listas podem ser intercaladas no tempo de pior caso ϴ(n.Iog(n/k)). c) Dado que o algoritmo modificado é executado no tempo de pior caso ϴ(n.k + n.iog(n/k)), determine o maior valor assintótico (notação ϴ) de k como uma função de n para a qual o algoritmo modificado tem o mesmo tempo de execução assintótico que a ordenação por intercalação padrão. d) Como k deve ser escolhido na prática? 65) Para cada algoritmo abaixo, forneça a recorrência que descreve seu tempo de execução no pior caso e dê o seu tempo de execução no pior caso usando a notação ϴ. a) Busca Binária b) Ordenação por Inserção c) Ordenação por Intercalação
15 VIII. Construção de Algoritmos Eficientes Nos exercícios a seguir, você construirá algoritmos ótimos e/ou sujeitos a especificações de eficiência assintótica, utilizando os conhecimentos abordados nos slides da Aula 04, 05 e ) Considere o problema de construir um arranjo ordenado C[1...m+n] composto de m+n números distintos obtidos de dois arranjos ordenados A[1...m] e B[1...n]. a) Determine uma cota inferior para este problema, expressa em notação Ω. b) Construa um algoritmo ótimo para resolver este problema, ou seja, um algoritmo que tenha a cota inferior do problema como limite assintótico superior de seu tempo de execução de pior caso. 67) Considere um conjunto S com 2 números distintos. Diz-se que um par de números distintos x,y são próximos em S se max min,, ou seja, se a distância entre x e y é, no máximo, a distância média entre números consecutivos ordenados. a) Explique brevemente porque todo grupo S com 2 números distintos contém um par de elementos próximos em S. b) Suponha que particionemos S em torno de um elemento pivô, organizando o resultado em dois subgrupos = e =. Prove que, para algum 1,2, existe um par x, y de números que são próximos em S (e não somente em Sk). c) Descreva um algoritmo de tempo O(n) para encontrar um par de números próximos em S (Dica use a estratégia dividir para conquistar ). d) Analise seu algoritmo, demonstrando o limite superior assintótico O(n). 68) Seja A[l...n] um arranjo de n números distintos. Se i < j e A[i] > A[j], então o par ( i, j ) é chamado uma inversão de A. a) Liste as cinco inversões do arranjo 2, 3, 8, 6, 1. b) Qual arranjo com elementos do conjunto 1, 2,..., n tem o número máximo de inversões? Quantas inversões ele tem? c) Qual é o relacionamento entre o tempo de execução da ordenação por inserção e o número de inversões no arranjo de entrada? Justifique sua resposta. d) Construa um algoritmo que determine o número de inversões em qualquer permutação sobre n elementos no tempo do pior caso de ϴ(n.Iog(n)). Sugestão: modifique a ordenação por intercalação.
16 69) Um vetor A[1..n] é unimodal se consiste de uma sequência crescente seguida de uma sequência decrescente, ou mais precisamente, se existe um índice m 1,2,, tal que <+1 1 < >+1 < Em particular, A[m] é o maior elemento, e é, também, o único máximo local rodeado por elementos menores (A[m-1] e A[m+1]). a) Construa um algoritmo para determinar o maior elemento de um vetor unimodal A[1..n] em tempo O(log n). b) Prove que o seu algoritmo está correto. c) Prove o limite superior assintótico de seu tempo de execução. Um polígono é convexo se todos os seus ângulos internos são menores que 180 o, como ilustrado na figura abaixo: Representa-se um polígono convexo como um vetor V[1..n] onde cada elemento do vetor representa um vértice do polígono na forma de um par ordenado (x,y). Sabe-se que V[1] é o vértice com a menor coordenada x e os vértices V[1..n] são ordenados no sentido horário, como mostra a figura. Deve-se assumir que as coordenadas x dos vértices são todas distintas entre si, assim como as coordenadas y o são. a) Construa um algoritmo para encontrar o vértice com a maior coordenada x em tempo O(log n). b) Construa um algoritmo para encontrar o vértice com a maior coordenada y em tempo O(log n). 70) Descreva um algoritmo de tempo ϴ(n.log(n)) que, dado um número x e um conjunto S composto de n números distintos, determine se existem ou não dois elementos em S cuja soma seja exatamente x. 71) Verifique se a afirmação abaixo é verdadeira ou falsa e justifique sua resposta: Um arranjo composto de n números cujos valores podem ser somente 1, 0 ou 1 pode ser ordenado em tempo de pior caso de O(n).
17 IX. Análise Assintótica Experimental No exercício a seguir, você estimará limites assintóticos e fará previsões a partir de medições experimentais construirá algoritmos ótimos e/ou sujeitos a especificações de eficiência assintótica, utilizando os conhecimentos abordados nos slides da Aula 04 e ) Três algoritmos (A, B e C) foram desenvolvidos para resolver um mesmo problema. A tabela abaixo mostra os tempos de processamento obtidos nos testes dos 3 algoritmos na resolução de problemas com tamanhos n=10, n=20, n=30 e n=40. Tamanho do Problema Algoritmo A ( hh:mm:ss ) Algoritmo B ( hh:mm:ss ) Algoritmo C ( hh:mm:ss ) n = 10 00:00:04 00:00:20 00:08:18 n = 20 00:00:32 00:01:20 00:16:36 n = 30 00:01:48 00:02:59 00:24:55 n = 40 00:04:15 00:05:19 00:33:13 a) Estime as taxas de crescimento dos três algoritmos, expressando-as na notação O. b) Estime o tempo de processamento que cada algoritmo consumiria na resolução de um problema de tamanho n=100 e n=1000. c) Qual dentre os três algoritmos é o mais recomendável para ser utilizado na resolução de problema de grande porte? E para problemas de tamanho pequeno e moderado?
Trabalho Prático 1. Valor: 1,0 pontos (10% da nota total) Data de Entrega: 02/05/2010
Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Biológicas Programa de Pós-Graduação em Ciência da Computação Projeto e Análise de Algoritmos - 1 o semestre de 2010 Professor: David Menotti
Leia maisLista 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 mais1 a Lista de Exercícios
Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Biológicas Programa de Pós-Graduação em Ciência da Computação Projeto e Análise de Algoritmos - 1 o semestre de 2010 Professor: David Menotti
Leia maisAlgoritmos 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 maisBusca 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 maisLista 2 - PMR2300/3200
Lista 2 - PMR2300/3200 Fabio G. Cozman, Thiago Martins 8 de março de 2015 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
Leia maisEEL470 Algoritmos e Estruturas de Dados Prof. Heraldo L. S. Almeida Prova 1 (22/05/2009)
1) Demonstre que, se f(n) Θ(g(n)) e g(n) O(h(n)), então h(n) Ω(f(n)). Valor: 2,0 pontos Se f(n) Θ(g(n)), então existem c 1, c 2 e n 1 tais que c 1 g(n) f(n) c 2 g(n), n n 1 Se g(n) O(h(n)), então existem
Leia maisLISTA DE EXERCÍCIOS 1
UFMG/ICEx/DCC Projeto e Análise de Algoritmos LISTA DE EXERCÍCIOS 1 Pós-Graduação em Ciência da Computação 1 o Semestre de 2011 Observações: 1. Comece a fazer esta lista imediatamente. Você nunca terá
Leia maisLISTA DE EXERCÍCIOS 1
UFMG/ICEx/DCC Algoritmos e Estruturas de Dados II LISTA DE EXERCÍCIOS 1 Graduação (Ciências Exatas & Engenharias) 1 o Semestre de 2007 Exercícios a serem entregues: 2, 4, 9, 12, 13, 17, 18, 19, 21, 22.
Leia maisEstruturas 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 maisLista 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 maisCES-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 maisComplexidade 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 mais1. O que é a eficiência assintótica de um algoritmo. Explique com suas palavras.
Disciplina: Estrutura de Dados II Turma: 4EC/5CC Data: 13/11/15 Nota: Professor: Renato E. N. de Moraes Semestre: 2015-2 Valor: 0,0 pts Aluno: Lista de exercícios 04 1. O que é a eficiência assintótica
Leia maisAná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 maisMedida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Medida do Tempo de Execução de um Programa David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Classes de Comportamento Assintótico Se f é uma função de complexidade para um algoritmo F, então
Leia maisAná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 maisTécnicas de análise de algoritmos
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Técnicas de análise de algoritmos Algoritmos e Estruturas de Dados I Natália Batista https://sites.google.com/site/nataliacefetmg/ nataliabatista@decom.cefetmg.br
Leia mais1 a Lista Professor: Claudio Fabiano Motta Toledo Estagiário PAE: Jesimar da Silva Arantes
SSC0503 - Introdução à Ciência de Computação II 1 a Lista Professor: Claudio Fabiano Motta Toledo (claudio@icmc.usp.br) Estagiário PAE: Jesimar da Silva Arantes (jesimar.arantes@usp.br) 1. O que significa
Leia maisComplexidade 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 maisSoluçã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É 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 maisClasses, Herança e Interfaces
Escola de Artes, Ciências e Humanidades EACH-USP ACH2002 Introdução à Ciência da Computação II Professor: Delano Medeiros Beder revisada pelo professor: Luciano Digiampietri EACH Segundo Semestre de 2011
Leia maisProva 1 PMR2300 / PMR3201 1o. semestre 2015 Prof. Thiago Martins
Prova 1 PMR2300 / PMR3201 1o. semestre 2015 Prof. Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço. Indique na linha seguinte quatro das cinco questões abaixo que devem
Leia maisAlgoritmos 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 maisEstruturas 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 mais5. 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 maisCentro 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 maisCOMPLEXIDADE DE ALGORITMOS
COMPLEXIDADE DE ALGORITMOS Algoritmos Seqüência de instruções necessárias para a resolução de um problema bem formulado Permite implementação computacional COMPLEXIDADE DE ALGORITMOS Um algoritmo resolve
Leia maisAná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 maisDivisã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 maisProjeto 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 maisAná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 maisAula 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 maisAná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 maisLista 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 maisProjeto e Análise de Algoritmos
Projeto e Algoritmos Pontifícia Universidade Católica de Minas Gerais harison@pucpcaldas.br 26 de Maio de 2017 Sumário A complexidade no desempenho de Quando utilizamos uma máquina boa, ela tende a ter
Leia maisUNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO UNIVERSITÁRIO NORTE DO ESPÍRITO SANTO
Disciplina: Estrutura de Dados II Turma: 4EC/5CC Data: 13/11/15 Nota: Professor: Renato E. N. de Moraes Semestre: 2015-2 Valor: 0,0 pts Aluno: Lista de exercícios 04 1. O que é a eficiência assintótica
Leia maisAlgoritmos 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 maisCapí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 maisQuantidade 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 maisMergesort. 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 maisProjeto 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 maisTé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 maisLista de exercícios sobre contagem de operações Prof. João B. Oliveira
Lista de exercícios sobre contagem de operações Prof. João B. Oliveira 1. metodo m ( Vetor V ) int i, res = 0; para i de 1 a V.size res = res + V[i]; return res; Soma de elementos de um vetor, O( ). 2.
Leia maisAná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 maisOrdenaçã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 maisTeoria da Computação. Aula 3 Comportamento Assintótico 5COP096. Aula 3 Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr
5COP096 Teoria da Computação Aula 3 Prof. Dr. Sylvio Barbon Junior 1 Sumário 1) Exercícios Medida de Tempo de Execução. 2) Comportamento Assintótico de Funções. 3) Exercícios sobre Comportamento Assintótico
Leia maisFACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto a Análise de Algoritmos I Lista de Exercícios 1
FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Projeto a Análise de Algoritmos I Lista de Exercícios 1 Prof. Osvaldo. 1. Descreva alguns problemas associados ao emprego de metodologias
Leia maisRecursão. Aula 1. Liana Duenha. Faculdade de Computação Universidade Federal de Mato Grosso do Sul
Recursão Aula 1 Liana Duenha Faculdade de Computação Universidade Federal de Mato Grosso do Sul Algoritmos e Programação II, Análise de Sistemas, 2010 Martinez & Rubert (FACOM) Recursão APIIAS 1 / 25 Conteúdo
Leia maisEstruturas de Dados Algoritmos
Estruturas de Dados Algoritmos Prof. Eduardo Alchieri Algoritmos (definição) Sequência finita de instruções para executar uma tarefa Bem definidas e não ambíguas Executáveis com uma quantidade de esforço
Leia maisTé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 maisANÁ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 maisBCC202 - 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 maisLista 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 maisAlgoritmos 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 maisOrdenação: MergeSort. Prof. Túlio Toffolo BCC202 Aula 14 Algoritmos e Estruturas de Dados I
Ordenação: MergeSort Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 14 Algoritmos e Estruturas de Dados I DIVISÃO E CONQUISTA Motivação É preciso revolver um problema com uma entrada grande
Leia maisProva 1 PMR3201 Computação para Automação 1o. semestre 2016 Prof. Thiago de Castro Martins
Prova 1 PMR3201 Computação para Automação 1o. semestre 2016 Prof. Thiago de Castro Martins 1. (25 pontos) A listagem a seguir mostra o código de uma função que converte uma cadeia de caracteres com a representação
Leia maisORDENAÇÃO POR INTERCALAÇÃO
AULA 6 ORDENAÇÃO POR INTERCALAÇÃO Na aula 5 revimos os métodos de ordenação mais básicos, que são todos iterativos, simples e têm tempo de execução de pior caso proporcional a n 2, onde n é o tamanho da
Leia maisCT-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 maisUNIVERSIDADE 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 maisAná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 maisAnálise de Algoritmos Parte 4
Análise de Algoritmos Parte 4 Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC202 Aula 07 Algoritmos e Estruturas de Dados I Como escolher o algoritmo mais adequado para uma situação? (continuação)
Leia maisMelhores 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 maisOrdenação: QuickSort. Prof. Túlio Toffolo BCC202 Aula 15 Algoritmos e Estruturas de Dados I
Ordenação: QuickSort Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 15 Algoritmos e Estruturas de Dados I QuickSort Proposto por Hoare em 1960 e publicado em 1962. É o algoritmo de ordenação
Leia maisConstrução de Algoritmos II Aula 06
exatasfepi.com.br Construção de Algoritmos II Aula 06 André Luís Duarte Porque mil anos são aos teus olhos como o dia de ontem que passou, e como a vigília da noite. Salmos 90:4 Recursividade e complexidade
Leia maisANÁ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 maisALGORITMOS E ESTRUTURAS DE DADOS 2011/2012 ANÁLISE DE ALGORITMOS. Armanda Rodrigues 3 de Outubro 2011
ALGORITMOS E ESTRUTURAS DE DADOS 2011/2012 ANÁLISE DE ALGORITMOS Armanda Rodrigues 3 de Outubro 2011 2 Análise de Algoritmos Temos até agora analisado soluções de problemas de forma intuitiva A análise
Leia maisBCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 13: Ordenação: MergeSort Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes Email: reifortes@iceb.ufop.br
Leia maisCOMPLEXIDADE DE ALGORITMOS COMPLEXIDADE DE ALGORITMOS
COMPLEXIDADE DE ALGORITMOS Algoritmos Seqüência de instruções necessárias para a resolução de um prolema em formulado Permite implementação computacional COMPLEXIDADE DE ALGORITMOS Um algoritmo resolve
Leia maisEstruturas 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 maisAnálise de Algoritmos
Análise de Algoritmos Parte 3 Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 06 Algoritmos e Estruturas de Dados I Como escolher o algoritmo mais adequado para uma situação? (continuação) Exercício
Leia maisFabio G. Cozman, Thiago Martins 2017
Lista 1 - adendo - PMR3201 Fabio G. Cozman, Thiago Martins 2017 Exercícios 1. (P1 2016) A listagem a seguir mostra o código de uma função que converte uma cadeia de caracteres com a representação decimal
Leia maisSCC 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 maisAula 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 maisOs métodos de ordenação que ordenam os elementos in situ podem ser classificados em três principais categorias:
ORDENAÇÃO A atividade de ordenação é o processo de rearranjo de um certo conjunto de objetos de acordo com um critério (ordem) específico. O objetivo da ordenação é facilitar a localização dos membros
Leia maisOrdenação por Intercalação Métodos de Ordenação Parte 4
Ordenação por Intercalação Métodos de Ordenação Parte 4 SCC-601 Introdução à Ciência da Computação II Rosane Minghim 2010 Revisando... Também chamado merge-sort Idéia básica: dividir para conquistar Um
Leia maisAlgoritmos 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 maisLista de março de 2014
Lista 1 19 de março de 2014 1 Exercícios Básicos 1.1 Na bibliografia Dasgupta: Capítulo 0, exercícios 1 e 2. Exercícios 2.16 e 2.17 Tardos & Kleinberg: Todos exercícios do cap 2 do livro texto, exceto
Leia maisComportamento Assintótico. Algoritmos e Estruturas de Dados Flavio Figueiredo (http://flaviovdf.github.io)
Comportamento Assintótico Algoritmos e Estruturas de Dados 2 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Até Agora Falamos de complexidade de algoritmos com base no número de passos Vamos generalizar
Leia maisAnálise de algoritmos. Parte I
Análise de algoritmos Parte I 1 Recursos usados por um algoritmo Uma vez que um procedimento está pronto/disponível, é importante determinar os recursos necessários para sua execução Tempo Memória Qual
Leia maisProgramação Estruturada
Programação Estruturada Recursão Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Recursão Recursão 1 Recursão 2
Leia maisESTRUTURAS DE DADOS E ALGORITMOS ALGORITMOS DE ORDENAÇÃO POR COMPARAÇÃO - II
ESTRUTURAS DE DADOS E ALGORITMOS ALGORITMOS DE ORDENAÇÃO POR COMPARAÇÃO - II Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande ALGORITMOS VISTOS ANTERIORMENTE
Leia maisLuís Fernando Schultz Xavier da Silveira. 12 de maio de 2010
Monóides e o Algoritmo de Exponenciação Luís Fernando Schultz Xavier da Silveira Departamento de Informática e Estatística - INE - CTC - UFSC 12 de maio de 2010 Conteúdo 1 Monóides Definição Propriedades
Leia maisProjeto de Algoritmos e Indução Matemática
Capítulo 3 Projeto de Algoritmos e Indução Matemática Um algoritmo é uma descrição precisa de um método para a resolução de determinado problema. Este capítulo apresenta a relação entre a prova de teoremas
Leia maisAula 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 maisALGORITMOS AVANÇADOS UNIDADE II Recursividade. Luiz Leão
Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 2.1 - Definições recursivas 2.2 - Como implementar recursividade 2.3 - Quando não usar recursividade 2.4 - Desenvolvendo algoritmos
Leia maisUniversidade Federal do ABC Avaliação Disciplina Turma Professor Data Instruções para a prova (leia antes de começar): SelectionSort selectonsortrec
Universidade Federal do ABC Avaliação: Prova 02 Disciplina: BC1424 - Algoritmos e Estruturas de Dados I Turma: Noturno Professor: Jesús P. Mena-Chalco Data: 03/05/2016 Nome completo: RA: Instruções para
Leia maisMelhores 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 maisProjeto 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 maisAlgoritmos e Estruturas de Dados I Prof. Tiago Eugenio de Melo
Algoritmos e Estruturas de Dados I Prof. Tiago Eugenio de Melo tmelo@uea.edu.br www.tiagodemelo.info Observações O conteúdo dessa aula é parcialmente proveniente do Capítulo 11 do livro Fundamentals of
Leia maisAnálise de Algoritmos Estrutura de Dados II
Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Análise de Algoritmos Estrutura de Dados II COM10078 - Estrutura de Dados II Prof. Marcelo Otone Aguiar marcelo.aguiar@ufes.br
Leia mais7. Introdução à Complexidade de Algoritmos
7. Introdução à Complexidade de Algoritmos Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 7. Introdução à Complexidade de Algoritmos Estruturas de Dados 1 / 1 Análise de Algoritmos
Leia maisComplexidade de Algoritmos
60 Desempenho 50 40 30 20 Algoritmo1 Algoritmo2 Algoritmo3 10 0 Complexidade de Algoritmos INFORMÁTICA BÁSICA Prof. Demétrios Coutinho C a m p u s P a u d o s F e r r o s D i s c i p l i n a d e A l g
Leia maisComplexidade Assintótica de Programas Letícia Rodrigues Bueno
Complexidade Assintótica de Programas Letícia Rodrigues Bueno Análise de Algoritmos 1. Introdução; Análise de Algoritmos 1. Introdução; 2. Conceitos básicos; Análise de Algoritmos 1. Introdução; 2. Conceitos
Leia maisINF 1010 Estruturas de Dados Avançadas
INF 1010 Estruturas de Dados Avançadas Complexidade de Algoritmos 2012 DI, PUC-Rio Estruturas de Dados Avançadas 2012.2 1 Introdução Complexidade computacional Termo criado por Hartmanis e Stearns (1965)
Leia maisCarlos 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 maisMarcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia
Introdução à Análise de Algoritmos Marcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia Aula de hoje Nesta aula veremos: Sobre a disciplina Exemplo: ordenação Sobre a disciplina
Leia maisIntroduçã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