3. ANÁLISE DE COMPLEXIDADE PESSIMISTA
|
|
- Kevin Santiago Campos
- 6 Há anos
- Visualizações:
Transcrição
1 3. ANÁLISE DE COMPLEXIDADE PESSIMISTA Este capítulo introduz uma metodologia para analisar a complexidade pessimista (i. e. no pior caso) de um algoritmo com base em sua estrutura. O processo de construção de um algoritmo seria mais eficaz se a complexidade fosse um fator integrante do projeto do mesmo. Apesar de a complexidade ser uma medida muito particular à classe do algoritmo que está sendo analisado, alguns aspectos do cálculo da complexidade não dependem do que faz o algoritmo. Entre as medidas de complexidade, a complexidade no pior caso é o critério de avaliação mais utilizado. Serão estudadas, uma a uma, as principais estruturas algorítmicas a seguir: o Atribuição: v e, o Seqüência (ou composição): S ; T, o Condicional: se b então S senão T (ou se b então S), o Iteração definida (ou incondicional): para i de j até m faça S, o Iteração indefinida (ou condicional): enqto b faça S. Na seção 2 do capítulo 2 (cf ), introduzimos as seguintes variantes para o critério pessimista de complexidade de um algoritmo a: c P = [ a ](n) := Máx { desemp[ a ](d) IN / tam(d) = n }, c P < [ a ](n) := Máx { desemp[ a ](d) IN / tam(d) < n }; onde desemp[ a ](d) := custo(exec[ a ](d)). Neste capítulo daremos ênfase à variante c P < [a](n), onde vários resultados podem ser adaptados para a variante c P = [a](n). Entre as medidas de complexidade, a complexidade no pior caso é o critério de avaliação mais utilizado. Visão geral do capítulo 3.1 Preliminares e conceitos auxiliares. Introduz algumas idéias básicas importantes e conceitos auxiliares, como os de absorção e máximo assintótico em ordem, que serão usadas a seguir. 3.2 Equações de complexidade pessimista. Estuda a complexidade de cada uma das principais estruturas algorítmicas, estabelecendo equações, ilustradas por exemplos simples. 3.3 Exemplos de aplicação. Ilustra a metodologia da seção 3.2, aplicando-a a alguns exemplos de algoritmos. 3.1 PRELIMINARES E CONCEITOS AUXILIARES A motivação é reduzir o desempenho - e a complexidade - de um algoritmo à informações sobre suas partes. Podemos operar ponto a ponto com funções. Consideremos funções f e g de um conjunto D no conjunto IR+, onde definimos sua soma pontual por: ( f + g )(d) := f(d) + g(d), para cada d D. Definimos, ainda, seu máximo e mínimo pontuais, respectivamente, por: Máx ( f, g )(d) := Máx { f(d), g(d) } e mín ( f, g )(d) := mín { f(d), g(d) } Idéias básicas: componentes de algoritmos A complexidade de um algoritmo poderá ser obtida a partir das complexidades das suas partes. Em geral, cada componente executada dá sua contribuição para o desempenho e a complexidade do algoritmo.
2 Torna-se conveniente classificar as componentes de um algoritmo em conjuntivas ou disjuntivas, conforme sejam sempre executadas ou não. Por exemplo, no (trecho de) algoritmo j i + 1 ; k i - 1, essas duas atribuições são suas componentes conjuntivas. Por outro lado, essas duas atribuições são as componentes disjuntivas do (trecho de) algoritmo se i j então j i + 1 senão k i - 1. Consideremos um algoritmo a 0 com duas componentes a 1 e a 2. Para entradas de tamanho até n, a complexidade pessimista, pela sua própria definição, dá uma cota superior para o desempenho: para uma entrada d com tam(d) < n, sabemos que desemp[ a j ](d) < c P < [ a j ](n), para j = 0, 1, 2. Para o caso de componentes conjuntivas, na execução do algoritmo a 0 sobre entrada d, temos esforços computacionais associados às execuções das duas componentes a 1 e a 2. Assim, o desempenho do algoritmo a 0,com entrada d é dado por: desemp[ a 0 ](d) = desemp[ a 1 ](d) + desemp[ a 2 ](d) (3.1.1). Como as complexidades pessimistas dão cotas superiores para os desempenhos, temos: desemp[ a 0 ](d) < c P < [ a 1 ](n) + c P < [ a 2 ](n). Assim, pela definição de complexidade pessimista, obtemos a seguinte cota superior: c P < [ a 0 ](n) < c P < [ a 1 ](n) + c P < [ a 2 ](n). Por outro lado, pela equação (3.1.1) os desempenhos das partes dão cotas inferiores: desemp[ a j ](d) < desemp[ a 0 ](d), para cada j = 1, 2. De novo, como a complexidade pessimista é cota superior para o desempenho, temos: desemp[ a i ](d) < c P < [ a 0 ](n), para cada i = 1, 2. Assim, pela definição de complexidade pessimista, obtemos as seguintes cotas inferiores: c P < [ a j ](n) < c P < [ a 0 ](n), para cada j = 1, 2. Portanto, da definição de máximo pontual, vem a seguinte cota inferior para c P < [ a 0 ]: Máx ( c P < [ a 1 ], c P < [ a 2 ] )(n) < c P < [ a 0 ](n). Princípio das partes conjuntivas Para o caso de componentes conjuntivas, com o exemplo do algoritmo anterior, a complexidade pessimista do algoritmo a 0 tem cotas. Máx ( c P < [ a 1 ], c P < [ a 2 ] ) < c P < [ a 0 ] < c P < [ a 1 ] + c P < [ a 2 ]. Logo, a complexidade pessimista do algoritmo a 0 tem ordem Θ ( c P < [ a 1 ] + c P < [ a 2 ] ). Consideremos agora um algoritmo a 0 com duas componentes a 1 e a 2 disjuntivas. Neste caso, temos esforços computacionais associados às execuções ora da componente a 1, ora da componente a 2. Assim, para cada entrada d, temos: desemp[ a 0 ](d) = desemp[ a 1 ](d) ou desemp[ a 0 ](d) = desemp[ a 2 ](d) (3.1.2). Como as complexidades pessimistas dão cotas superiores para os desempenhos, temos: desemp[ a 0 ](d) < c P < [ a 1 ](n) ou desemp[ a 0 ](d) < c P < [ a 2 ](n). Assim, pela definição de máximo pontual, obtemos a seguinte cota superior: desemp[ a 0 ](d) < Máx (c P < [ a 1 ], c P < [ a 2 ] )(n). Portanto, pela definição de complexidade pessimista, obtemos a seguinte cota superior: c P < [ a 0 ](n) < Máx (c P < [ a 1 ], c P < [ a 2 ] )(n). Por outro lado, como a complexidade pessimista é cota superior para o desempenho, da expressão (3.1.2) temos: se desemp[ a 0 ](d) = desemp[ a 1 ](d), então: desemp[ a 1 ](d) < c P < [ a 0 ](n); se desemp[ a 0 ](d) = desemp[ a 2 ](d), então: desemp[ a 2 ](d) < c P < [ a 0 ](n). Assim, para qualquer entrada d com tam(d) < n, temos a seguinte cota inferior: Máx { desemp[ a 1 ](d), desemp[ a 2 ](d) } < c P < [ a 0 ](n). Logo, para o pior caso de entradas com tamanho até n, temos a cota inferior: Máx { Máx { desemp[ a 1 ](d), desemp[ a 2 ](d) } / tam(d) < n } < c P < [ a 0 ](n).
3 Mas, pode-se mostrar que Máx { c P < [ a 1 ](n), c P < [ a 2 ](n) } é uma cota inferior para: Máx { Máx { desemp[ a 1 ](d), desemp[ a 1 ](d) } / tam(d) < n }. Portanto, a definição de máximo pontual, vem a ser cota inferior para c P < [ a 0 ]: Máx ( c P < [ a 1 ], c P < [ a 2 ] )(n) < c P < [ a 0 ](n). Princípio das partes disjuntivas Para o caso de componentes disjuntivas, com o exemplo do algoritmo anterior, a complexidade pessimista do algoritmo a 0 tem cotas. c P < [ a 0 ] = Máx ( c P < [ a 1 ], c P < [ a 2 ] ). Logo, a complexidade pessimista do algoritmo a 0 tem ordem Ω ( c P < [ a 0 ] ) Conceitos auxiliares Os conceitos de absorção e máximo assintótico (em ordem) são motivados por idéias de reduzir a complexidade de um algoritmo às ordens das suas partes. A idéia de uma componente de um algoritmo absorver outra se aplica quando ambas as componentes são conjuntivas. Para o caso de componentes disjuntivas, aparece a idéia de máximo assintótico, que será considerada em seguida. Uma complexidade é absorvida por outra, por exemplo, se ambas são polinômios na mesma variável. Nesse caso, a complexidade de menor grau é absorvida. Assim, n é absorvida por n 2. Também, n. logn é absorvida por n 2. Dadas funções f e g de IN em IR+, dizemos que f é absorvida por g, sse, f é O( g ). Isto significa que: ( c IR+) ( n 0 IN) ( n > n 0 ): f(n) < c. g(n). Princípio da absorção Para funções f e g de IN em IR+, se f é absorvida por g, sua soma pontual f + g é Θ ( g ). Assim, como n. logn é absorvida por n 2, a soma ( n. logn + n 2 ) é Θ ( n 2 ). Máximo assintótico Considerando funções f e g de IN em IR+, vamos a seguir examinar algumas expressões mais simples para a ordem do máximo pontual Máx ( f, g )(n) := Máx { f(n), g(n) }. Pode acontecer, no entanto, que não exista uma dominância. Quando isso acontece, uma solução simplista, mas muitas vezes usada, é utilizar para a ordem do máximo pontual Máx ( f, g ) a soma pontual, dada por ( f + g )(n) := f(n) + g(n). Inicialmente, é claro que o máximo assintótico deve ser comutativo. (i): MxAO ( f, g ) = MxAO ( g, f ). Devemos também requerer que as funções sejam dominadas. (ii): f = O( MxAO ( f, g ) ) e g = O( MxAO ( f, g ) ). Podemos exigir que o máximo assintótico seja a melhor cota superior. (iii): MxAO ( f, g ) = O( h ), sempre que f = O( h ) e g = O( h ). Podemos requerer também a seguinte propriedade. (iv): MxAO ( f, g ) = g, sempre que ( n 0 IN) ( n > n 0 ): f(n) < g(n). Consideremos, por sua vez, funções f e g de IN em IN. O que devemos esperar de seu máximo assintótico MxAO ( f, g )?
4 3.2 EQUAÇÕES DE COMPLEXIDADE PESSIMISTA Precisamos das complexidades das componentes básicas e saber como combinar complexidades de componentes. Vamos analisar a complexidade de cada uma das principais estruturas algorítmicas. Daremos ênfase à variante c P < [a], cuja notação simplificaremos para c P [a]. Vários resultados podem ser adaptados para a variante c P = [a] Atribuição Exemplo Considere as atribuições a seguir: a) Para variáveis inteiras i e j: i 0 {inicialização} ; j i {transferência}. Ambas têm complexidade constante: Θ (1). b) Para lista v de inteiros e variável inteira m: m Max(v) {valor máximo}. Esta atribuição envolve (sendo n o comprimento da lista em v): - determinar o máximo da lista v, com complexidade Θ (n); - transferir este valor, com complexidade Θ (1). Sua complexidade tem ordem linear: Θ (n). c) Para listas u, v e w: u v {transfere lista}; w Reversa(v) {inverte lista}. A atribuição de transferência de cada elemento da lista v, tendo complexidade O (n), para uma lista u com comprimento n. A atribuição w Reversa(v) envolve: - inverter a lista v, com complexidade Θ (n); - transferir os elemento da lista invertida, com complexidade Θ (n). Sua complexidade tem ordem n + n, i. e. O (n). Assim, o desempenho da atribuição v e, com entrada d é dado por: desemp[ v e ](d) = cálc[ e ](d) + transf[ e(d) ]. Complexidade pessimista da atribuição A complexidade pessimista da atribuição v e tem cotas: Máx ( c P [ e ], c P [ e ] ) < c P [ v e ] < c P [ e ] + c P [ e ]. Logo, a ordem da complexidade pessimista da atribuição v e é dada por: c P [ v e ] = O ( c P [ e ] + c P [ e ] ). Exemplo Para listas u e v de inteiros, temos: c P [ u Ordene(v) ] = O ( c P [ Ordene ] + c P [ Ordene(v) ] ). Supondo que Ordene é um algoritmo com tempo O ( n 2 ), teremos: c P [ u Ordene(v) ] = O ( n 2 + n ) = O ( n 2 ). Note que, se a operação fundamental é a comparação, então: c P [ u Ordene(v) ] = O ( c P [ Ordene ] ) Seqüência (ou composição) Exemplo Considere as seqüências a seguir: a) Para variáveis inteiras i e j: i 0 ; j i. Sua complexidade tem ordem 1 + 1: Θ ( 1 ).
5 b) Para lista v de inteiros e variável inteira m: m Max(v) ; m m + 1. Sua complexidade tem ordem n + 1: O ( n ). c) Para listas u, v e w: u v ; w Reversa(v). Sua complexidade tem ordem n + n: Θ ( n ). Assim, o desempenho da seqüência S ; T com entrada d é dado por: desemp[ S ; T ](d) = desemp[ S ](d) + desemp[ T ](S(d)). Exemplo Considere o trecho de algoritmo: v Reversa(u) ; w Ordene(v), onde Reversa e Ordene têm complexidades Θ(n) e O(n 2 ), respectivamente. O algoritmo composto tem complexidade de ordem n + n 2, i. e. O ( n 2 ). Complexidade da seqüência com perservação (assintótica) de tamanho Se S preserva tamanho assintoticamente, então a complexidade pessimista da seqüência S ; T tem cotas: Máx ( c P [ S ], c P [ T ] ) < c P [ S ; T ] < c P [ S ] + c P [ T ]. A ordem da complexidade pessimista da seqüência S ; T é dada por: c P [ S ; T ] = O ( c P [ S ] + c P [ T ] ). Exemplo Dados algoritmos Prim(u) e Buscab(a,v), considere a seqüência: v Prim(u) ; Buscab( a, v ). Vamos supor que: - Prim(u) dá como saída a primeira metade da lista em u, com comprimento n / 2, e tem complexidade Θ ( n ); - Buscab( a, v ) procura a na lista v, com complexidade O ( logm ), para lista v com comprimento m. Assim, o algoritmo composto tem complexidade de ordem: n + log n / 2, ou seja O ( n ). Complexidade pessimista da seqüência (em geral) Para entradas com tamanho até n, i. e. s(n) := Máx { tam(s(d)) / tam(d) < n }, a complexidade pessimista da seqüência S ; T tem cotas: Máx ( c P [ S ](n), c P [ T ](s(n)) ) < c P [ S ; T ](n) < c P [ S ](n) + c P [ T ](s(n)). Logo, a complexidade pessimista da seqüência S ; T é dada por: c P [ S ; T ](n) = O ( c P [ S ](n) + c P [ T ](s(n)) ). Exemplo Considere a seqüência: v Prim(u) ; w Fin(u) ; v Ordene(v) ; w Ordene(w) ; u Concat( v, w ). Vamos supor que: - Prim é como no exemplo e, analogamente, Fin dá a segunda metade de sua entrada; - Ordene tem complexidade quadrática; - Concat( v, w ) dá como saída a concatenação das listas v e w, com complexidade O ( p + q ). Assim, o algoritmo composto tem complexidade de ordem: n + n + n n ( n 2 + n 2 ), ou seja O ( n2 ).
6 3.2.3 Condicionais Exemplo Considere as estruturas condicionais a seguir: a) Para variável inteira i: se i = 0 então i i + 1. Esta estrutura condicional envolve: - determinar se o valor de i é 0, com complexidade Θ ( 1 ); - se sim, executar a atribuição i i + 1, com complexidade Θ ( 1 ). Sua complexidade tem ordem constante: Θ ( 1 ). b) Para lista v de inteiros e variável inteira m: se m = 0 então m Max(v). Esta atribuição envolve: - determinar se o valor de m é 0, com complexidade Θ ( 1 ); - se sim, executar a atribuição m Max(v), com complexidade Θ ( n ). Sua complexidade, no pior caso, tem ordem linear: Θ ( n ). Assim, o desempenho desemp[ se b então S ](d) da estrutura condicional se b então S, com entrada d é dado por: aval[ b ](d) + desemp[ S ](d) caso o valor de b em d seja verdadeiro; aval[ b ](d) caso o valor de b em d seja falso. Complexidade da estrutura condicional simples A complexidade pessimista de se b então S tem cotas: c P [ b ] < c P [ se b então S ] < c P [ b ] + c P [ S ]. Logo, a ordem da complexidade pessimista de se b então S é dada por: c P [ se b então S ] = O ( c P [ b ] + c P [ S ] ). Exemplo Dados algoritmos Max e Ordene, (ex e 3.2.2), considere o seguinte trecho de algoritmo, para lista v de inteiros: se Max(v) = 0 então v Ordene(v). Para esta estrutura condicional temos: c P [ se Max(v) = 0 então v Ordene(v) ] = = O ( c P [ Max(v) = 0 ] + c P [ v Ordene(v) ] ). Como seus componentes têm complexidades pessimistas: c P [ Max(v) = 0 ] = O ( n ) e c P [ v Ordene(v) ] = O ( n 2 ); a ordem da complexidade pessimista desta estrutura condicional é: c P [ se Max(v) = 0 então v Ordene(v) ] = O ( n + n 2 ) = O( n 2 ). Exemplo Considere as estruturas condicionais a seguir: a) Para variáveis inteiras i e j: se i j então i i + j senão j i + 1. Esta estrutura condicional envolve: - saber se os valores de i e j são diferentes, tem complexidade Θ ( 1 ); - se sim, executar a atribuição i i + j, com complexidade Θ ( 1 ); - se não, executar a atribuição j i + 1, com complexidade Θ ( 1 ). Sua complexidade tem ordem constante: Θ ( 1 ). b) Para listas u e v (de inteiros): se u = v então v Prim(u) senão u Ordene(v). Esta estrutura condicional envolve: - determinar se as listas u e v são iguais, com complexidade O ( n ); - se sim, executar a atribuição v Prim(u), com complexidade O ( n ); - se não, executar a atribuição u Ordene(v), com complexidade O(n 2 ). Sua complexidade, no pior caso, tem ordem quadrática: O ( n 2 ).
7 Assim, a estrutura condicional se b então S senão T, com entrada d tem desempenho desemp[ se b então S senão T ](d) dado por: aval[ b ](d) + desemp[ S ](d) aval[ b ](d) + desemp[ T ](d) caso o valor de b em d seja verdadeiro; caso o valor de b em d seja falso. Complexidade pessimista da estrutura condicional composta A complexidade pessimista de se b então S senão T tem as cotas: inferior : Máx ( c P [ b ], c P [ S ], c P [ T ] ) < c P [ se b então S senão T ]; superior : c P [ se b então S senão T ] < c P [ b ] + MxAO ( c P [ S ], c P [ T ] ). A ordem da complexidade pessimista de se b então S senão T é dada por: c P [ se b então S senão T ] = O ( c P [ b ] + MxAO ( c P [ S ], c P [ T ] ). Exemplo Dados algoritmos Max, Reversa e Ordene (ex e 3.2.2), considere o seguinte trecho de algoritmo, para lista v de inteiros: se Max(v) > 0 então v Reversa(v) senão v Ordene(v). Para esta estrutura condicional temos: c P [ se Max(v) > 0 então v Reversa(v) senão v Ordene(v) ] = = O ( c P [ Max(v) > 0 ] + MxAO ( c P [ v Reversa(v) ],c P [ v Ordene(v) ] ) ). Suas componentes têm as seguintes complexidades pessimistas: c P [ Max(v) > 0 ] = O ( n ); c P [ v Reversa(v) ] = O ( n ) e c P [ v Ordene(v) ] = O ( n 2 ). Assim, temos o seguinte máximo assintótico em ordem de complexidades: MxAO ( c P [ v Reversa(v) ], c P [ v Ordene(v) ] ) = = MxAO ( n, n 2 ) = O( n 2 ). A ordem da complexidade pessimista desta estrutura condicional é: c P [ se Max(v) > 0 então v Reversa(v) senão v Ordene(v) ] = = O( n + n 2 ) = O( n 2 ).
Complexidade de Algoritmos. Edson Prestes
Edson Prestes Conceitos Auxiliares Mostre o principio da absorção Conceitos Auxiliares Considere duas funções f e g de IN em IR +. Freqüentemente, a partir de um certo ponto, uma função fica sempre maior
Leia maisComplexidade de Algoritmos. Edson Prestes
Edson Prestes ACP - Condicionais A complexidade pessimista de se b então S é limitada da seguinte maneira A ordem da complexidade é ACP - Condicionais Qual é a complexidade do seguinte trecho de algoritmo?
Leia maisComplexidade de Algoritmos. Edson Prestes
Edson Prestes Exemplos Exemplos A complexidade no pior caso é linear e igual a n, ou seja, é O(n) A complexidade média é linear e igual a (1+n)/2, ou seja, é O(n) Exemplos Considere o produto C de uma
Leia maisComplexidade de Algoritmos. Edson Prestes
Edson Prestes Relembrando Complexidade é também chamada esforço requerido ou quantidade de trabalho (relacionada ao tempo ou espaço). Complexidade no pior caso; Complexidade média. É possível antecipar
Leia maisAnálise de Complexidade de Algoritmos. mario alexandre gazziro
Análise de Complexidade de Algoritmos mario alexandre gazziro Definição A complexidade de um algoritmo consiste na quantidade de esforço computacional necessária para sua execução. Esse esforço é expresso
Leia maisMCTA028 Programação Estruturada Aula 20 Exercícios de custos de um algoritmo
MCTA028 Programação Estruturada Aula 20 Exercícios de custos de um algoritmo Prof. Jesús P. Mena-Chalco Q-2017 1 Estudo de algoritmos O projeto de algoritmos é influenciado pelo estudo de seus comportamentos.
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 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 maisBCC202 - 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 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 maisAlgoritmo. Exemplo. Definição. Programação de Computadores Comparando Algoritmos. Alan de Freitas
Algoritmos Programação de Computadores Comparando Algoritmos Um algoritmo é um procedimento de passos para cálculos. Este procedimento é composto de instruções que definem uma função Até o momento, vimos
Leia maisProgramação II Aula 07
Engenharias de Produção e Petróleo Programação II Aula 07 Adan Lucio P. Rodovia BR 101 Norte, Km. 60, Bairro Litorâneo, CEP 29932-540, São Mateus ES, Tel.: +55 (27) 3312-1511 - CEUNES Métodos de Ordenação
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 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 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 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 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 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 maisAndré Vignatti DINF- UFPR
Notação Assintótica: Ω, Θ André Vignatti DINF- UFPR Limitantes Inferiores Considere o seguinte trecho de código: void main () { /* trecho que le N da entrada padrao */ for (i = 0 ; i< N; i++) puzzle(i);
Leia maisPra início de conversa... O que é um algoritmo? Exemplos de algoritmos. Como podemos descrever algoritmos? Como podemos descrever algoritmos?
Pra início de conversa... O que é um algoritmo? Como podemos descrever algoritmos? avaliar algoritmos? Introdução à Análise de Algoritmos Prof. Cláudio E. C. Campelo http://claudiocampelo.com Derivado
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 maisAula 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 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 maisAndré Vignatti DINF- UFPR
Notação Assintótica: O André Vignatti DINF- UFPR Notação Assintótica Vamos expressar complexidade através de funções em variáveis que descrevam o tamanho de instâncias do problema. Exemplos: Problemas
Leia maisMedida 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 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 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 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 maisALGORITMOS 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 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 maisÁrea que visa determinar a complexidade (custo) de um algoritmo, com isso é possível:
Área que visa determinar a complexidade (custo) de um algoritmo, com isso é possível: Comparar algoritmos: existem algoritmos que resolvem o mesmo tipo de problema. Determinar se o algoritmo é ótimo :
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 maisBC1424 Algoritmos e Estruturas de Dados I Aula 05 Custos de um algoritmo e funções de complexidade
BC1424 Algoritmos e Estruturas de Dados I Aula 05 Custos de um algoritmo e funções de complexidade Prof. Jesús P. Mena-Chalco 1Q-2016 1 1995 2015 2 Custo de um algoritmo e funções de complexidade Introdução
Leia maisAlgoritmos e Estruturas de Dados I Aula 06 Custos de um algoritmo
Algoritmos e Estruturas de Dados I Aula 06 Custos de um algoritmo Prof. Jesús P. Mena-Chalco 1Q-2019 1 lista 3 7-2 6 NULL Node *Busca(int x, Node *lista) { while (lista!=null && lista->data!=x) lista =
Leia maisIntrodução à Análise de Algoritmos
Quanto tempo leva a execução de determinado algoritmo? Quando temos dois algoritmos que fazem a mesma coisa, qual deles leva menos tempo? A análise do algoritmo preocupa-se com as questões acima. É sempre
Leia maisANÁLISE DE COMPLEXIDADE DOS ALGORITMOS
1/18 ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS Algoritmos 2/18 Algoritmos Algoritmo - sequência de instruções necessárias para a resolução de um problema bem formulado (passíveis de implementação em computador)
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 maisESTRUTURA DE DADOS CIÊNCIA E TECNOLOGIA DO RIO. Curso de Tecnologia em Sistemas para Internet
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE ESTRUTURA DE DADOS Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia
Leia maisBreve Introdução à Complexidade Assintótica de Algoritmos Letícia Rodrigues Bueno
Breve Introdução à Complexidade Assintótica de Algoritmos Letícia Rodrigues Bueno Introdução Objetivo: possibilitar medir eficiência de algoritmos; Introdução Objetivo: possibilitar medir eficiência de
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 maisapenas os caminhos que passam só por vértices em C, exceto, talvez, o próprio v A Figura 1 a seguir ilustra o significado do conjunto C edovalordist.
CAMINHO DE CUSTO MÍNIMO Dados dois pontos A e B, em muitos problemas práticos fazemos 2 perguntas: 1. existe um caminho de A para B? ou 2. se existe mais de um caminho de A para B, qual deles é o mais
Leia maisAnálise de Algoritmos
Análise de Algoritmos Aula 04 Prof. Fernando Freitas Classes de Comportamento Assintótico Se f é uma função de complexidade para um algoritmo F, então O(f) é considerada a complexidade assintótica ou o
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 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 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 maisComportamento assintótico
ANÁLISE DE ALGORITMOS: PARTE 2 Prof. André Backes 2 Na última aula, vimos que o custo para o algoritmo abaixo é dado pela função f(n) = 4n + 3 1 3 Essa é a função de complexidade de tempo Nos dá uma ideia
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 mais2. Complexidade de Algoritmos
Introdução à Computação II 5952011 2. Complexidade de Algoritmos Prof. Renato Tinós Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 2.1. Introdução 2.1.1. Revisão de Pseudo-Código 2.1.2.
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 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 maisAná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 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 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 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 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 maisAnálise de Complexidade de Algoritmos
Análise de Complexidade de Algoritmos Algoritmos e Estruturas de Dados 2009/2010 Introdução Algoritmo: conjunto claramente especificado de instruções a seguir para resolver um problema Análise de algoritmos:
Leia maisOtimização em Grafos
Otimização em Grafos Luidi G. Simonetti PESC/COPPE 2017 Luidi Simonetti (PESC) EEL857 2017 1 / 33 Definição do Problema Dado: um grafo ponderado G = (V, E), orientado ou não, onde d : E R + define as distâncias
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 maisUNIVERSIDADE 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 maisIntrodução à Ciência da Computação II
Introdução à Ciência da Computação II 2semestre/200 Prof Alneu de Andrade Lopes Apresentação com material gentilmente cedido pelas profas Renata Pontin Mattos Fortes http://wwwicmcuspbr/~renata e Graça
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 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 maisAná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 maisANÁ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 maisTeoria da Computação Aula 9 Noções de Complexidade
Teoria da Computação Aula 9 Noções de Complexidade Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Análise de um Algoritmo em particular Qual é o custo de usar um dado algoritmo para resolver um
Leia maisALGORITMOS AVANÇADOS Lista de Exercícios 01. Luiz Leão
Lista de Exercícios 01 Luiz Leão luizleao@gmail.com http://www.luizleao.com Exercício 01 Qual a importância de estudarmos a complexidade dos algoritmos? Exercício 01 Resposta Qual a importância de estudarmos
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 maisComplexidade de algoritmos Notação Big-O
Complexidade de algoritmos Notação Big-O Prof. Byron Leite Prof. Tiago Massoni Engenharia da Computação Poli - UPE Motivação O projeto de algoritmos é influenciado pelo estudo de seus comportamentos Problema
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 maisAlgoritmos e Programação I
Algoritmos e Programação I Estruturas de Controle e Repetição Prof. Fernando Maia da Mota mota.fernandomaia@gmail.com CPCX/UFMS Fernando Maia da Mota 1 Estruturas de Controle Uma vez que a expressão condicional
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 maisElementos de Análise Assintótica
Elementos de Análise Assintótica Marcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia 23 de Março de 2018 Aula de hoje Nesta aula veremos: Elementos de Análise Assintótica
Leia maisAlgoritmos - 3. Alexandre Diehl. Departamento de Física - UFPel
Algoritmos - 3 Alexandre Diehl Departamento de Física - UFPel Estrutura sequencial Estrutura condicional Estrutura de repetição PCF2017 2 Estrutura sequencial As ações ao longo do algoritmo são executadas
Leia maisANÁLISE DE ALGORITMOS: PARTE 1. Prof. André Backes. Como resolver um problema no computador? Precisamos descrevê-lo de uma forma clara e precisa
ANÁLISE DE ALGORITMOS: PARTE 1 Prof. André Backes Algoritmos 2 Como resolver um problema no computador? Precisamos descrevê-lo de uma forma clara e precisa Precisamos escrever o seu algoritmo Um algoritmo
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 maisMelhores momentos AULA PASSADA. Complexidade Computacional p. 136
Melhores momentos AULA PASSADA Complexidade Computacional p. 136 Configurações controle q 7 cabeça 1 0 1 1 0 1 1 1 fita de leitura e escrita Configuração 1 0 1q 7 1 0 1 1 1 Complexidade Computacional p.
Leia maisTécnicas de Programação III Análise de Algoritmos (Continuação)
Técnicas de Programação III Análise de Algoritmos (Continuação) Aula ministrada em: 23/08/2007 Prof. Mauro L. C. Silva 1/10 Objetivos da Aula Entender a Análise e a Complexidade de Algoritmos 2/10 Avaliação
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 maisAlgoritmos 3/17/ Algoritmos como área de estudo e investigação
Algoritmos e Complexidade Ana Teresa Freitas INESC-ID/IST ID/IST 3/17/2005 1 O que é um algoritmo? Algoritmos: Sequência de instruções necessárias para a resolução de um problema bem formulado [passíveis
Leia maisComplexidade de Tempo
Complexidade de Tempo 1 Complexidade de Tempo Quando um problema é decidível, ele pode não ser solúvel na prática se a solução requer uma quantidade excessiva de tempo ou memória Medindo a complexidade
Leia maisAnálise de Algoritmos
Análise de Algoritmos Tempo e Espaço Exemplos Notação O( ) Análise de Algoritmos Como obter a solução de um problema? Especificação do problema: descrição da relação entre os valores de entrada e os de
Leia maisMelhores 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 maisPUC-GOIÁS - Departamento de Computação
PUC-GOIÁS - Departamento de Computação Fundamentos IV/Enfase Clarimar J. Coelho Goiânia, 28/05/2014 O que é interpolação polinomial? Ideia básica Permite construir um novo conjunto de dados a partir de
Leia maisEspaço amostral Ω: Conjunto enumerável de todos os possíveis resultados de um experimento aleatório. um evento elementar. E = E[X j ] X j.
Universidade Tecnológica Federal do Paraná Professor Murilo V G da Silva Notas de aula Algoritmos Avançados I (Aula 04 Conteúdos da aula: [CLR09: cap 7 e 9][MIE05 4, 5] Vamos estudar nesta aula três algoritmos
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 maisNem todos os problemas algorítmicos que podem ser resolvidos em princípio podem ser resolvidos na prática: os recursos computacionais requeridos
Nem todos os problemas algorítmicos que podem ser resolvidos em princípio podem ser resolvidos na prática: os recursos computacionais requeridos (tempo ou espaço) podem ser proibitivos. 1 Suponha que duas
Leia maisAlgoritmos Avançados Análise de Complexidade
CCAE Centro de Ciências Aplicadas e Educação UFPB - Campus IV - Litoral Norte Algoritmos Avançados Análise de Complexidade COMPLEXIDADE DE ALGORITMOS Definição: A Complexidade de um Algoritmo consiste
Leia maisResposta da pergunta 2: Θ(n 3 ). Resposta da pergunta 8: 1. 7 O(n). Sim. 22. n log n O(1). Não. 3. n + 7 O(n). Sim. 4. n + 7 O(1). Não.
SSC0503 - Introdução à Ciência de Computação II Respostas da 1 a Lista Professor: Claudio Fabiano Motta Toledo (claudio@icmc.usp.br) Estagiário PAE: Jesimar da Silva Arantes (jesimar.arantes@usp.br) Resposta
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 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 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 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 maisProjeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 10 Métodos de Ordenação de Complexidade Linear Edirlei Soares de Lima Ordenação Problema: Entrada: conjunto de itens a 1, a 2,..., a n ; Saída:
Leia maisUniversidade Federal de Alfenas
Universidade Federal de Alfenas Projeto e Análise de Algoritmos Aula 06 Notação O humberto@bcc.unifal-mg.edu.br Tempo de execução (ms) Última aula teórica Análise experimental 45 40 35 30 25 20 15 10 5
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 maisAlgoritmos e Programação
Algoritmos e Programação Aula 5 Estruturas de Repetição Profa. Marina Gomes marinagomes@unipampa.edu.br 26/04/2017 Engenharia de Computação - Unipampa 1 Aula de Hoje Estrutura de repetição Comando for
Leia maisINF 1010 Estruturas de Dados Avançadas
INF 1010 Estruturas de Dados Avançadas Complexidade de Algoritmos 1 Introdução Complexidade computacional Termo criado por Juris Hartmanis e Richard Stearns (1965) Relação entre o tamanho do problema e
Leia maisAná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 maisDefinimos a soma de seqüências fazendo as operações coordenada-a-coordenada:
Aula 8 polinômios (Anterior: chinês. ) 8.1 séries formais Fixemos um anel A. Denotaremos por A N o conjunto de todas as funções de N = {, 1, 2,... } a valores em A. Em termos mais concretos, cada elemento
Leia mais