2. Complexidade de Algoritmos
|
|
- Marcelo Quintanilha Almeida
- 5 Há anos
- Visualizações:
Transcrição
1 Introdução à Computação II Complexidade de Algoritmos Prof. Renato Tinós Depto. de Computação e Matemática (FFCLRP/USP) 1
2 Principais Tópicos 2.1. Introdução Revisão de Pseudo-Código Uma Rápida Revisão Matemática 2.2. Análise de Algoritmos Análise por Operações Primitivas Análise do Pior Caso e e do Caso Médio 2.3. Notação Assintótica Notação O Notação Notação Outras Notações 2.4. Análise Assintótica 2
3 Revisão de Pseudo-Código Pseudo-Código Descrição em alto nível que combina» Linguagem natural» Estruturas familiares de linguagem de programação Escrito para ser interpretado por um ser-humano, e não por um computador Mais compacto que o código na linguagem de programação Facilita a análise das estruturas de dados ou dos algoritmos 3
4 Revisão de Pseudo-Código Exemplo 2.1. Pseudo-Código Algoritmo maxelemento(): Entrada: vetor A com n inteiros Saída: elemento máximo de A maximo A[0] para i 1 até n-1 faça se A[i] > maximo então maximo A[i] fim se fim para retorne maximo 4
5 Revisão de Pseudo-Código Estruturas de linguagem de programação utilizadas Expressões» Atribuição:» Relação de igualdade: = Declarações de Rotinas: Algoritmo (par1,...) Chamadas de sub-rotinas: subrotina (par1,...) Retorno de sub-rotinas: retorne... (em inglês: return...) 5
6 Revisão de Pseudo-Código (continuação) Estruturas de Decisão: se...então...senão... (em inglês: if...then...else... ) Loops» enquanto...faça... (em inglês: while...do... )» repita...até que... (em inglês: repeat...until... )» para...faça... (em inglês: for...do... ) Indexação: A [ i ] 6
7 Logaritmos e Expoentes Revisão Matemática log b a = c a = b c Obs: em computação, é comum não escrever o valor da base quando b=2 (Exemplo: log 1024 = 10) 7
8 Revisão Matemática Algumas propriedades de somatórios Proposição 2.1. Para: dois inteiros nm0, duas funções f(i) e g(i) e uma constante c, n m i n m i n m i i g i f i g i f ) ( ) ( ) ( ) ( 1 1 m n n m i n m i n m i i f c i f c
9 Revisão Matemática Série Aritmética Proposição 2.2. Para qualquer inteiro n1, n n n i n i n n i n i n n i n i
10 Série Geométrica Revisão Matemática Proposição 2.3. Para qualquer inteiro n0 e qualquer número real 0 < a 1, então n n i 1 a a 1 a i0 1 10
11 Revisão Matemática Definições x : maior inteiro menor ou igual a x (piso ou chão) x : menor inteiro maior ou igual a x (teto) 11
12 2.2. Análise de Algoritmos Análise de algoritmos: prever os recursos de que o algoritmo vai necessitar Exemplos» Memória» Largura da banda de comunicação» Hardware» Tempo de execução O tempo de execução pode ser estudado através da análise experimental 12
13 2.2. Análise de Algoritmos o : computador 1 + : computador 2 Figura 2.1. Resultados de um estudo experimental do tempo de execução (t) para diferentes entradas (n) 13
14 Desvantagens dos estudos experimentais Limitado conjunto de entradas para teste Dificuldade de comparar a eficiência de dois ou mais algoritmos Necessidade de implementar e executar o algoritmo Existe outro método? Método analítico 2.2. Análise de Algoritmos» Independe do computador utilizado 14
15 Análise por Operações Primitivas Pode ser implementada em Pseudo- Código Independe da linguagem de programação Independe do hardware 15
16 Análise por Operações Primitivas Operações Primitivas Atribuição Chamada de uma sub-rotina Operação aritmética Operação lógica Indexação em um vetor Retorno de uma sub-rotina Referência a um objeto 16
17 Análise por Operações Primitivas Exemplo 2.2. Faça a análise por operações primitivas dos algoritmos apresentados abaixo a) Algoritmo fnum(a,b): Entrada: inteiros a e b Saída: valor da operação matemática soma a + b soma 0.8 * soma retorne soma 17
18 Análise por Operações Primitivas Exemplo 2.2. Faça a análise por operações primitivas dos algoritmos apresentados abaixo b) Algoritmo impvetor(a): Entrada: vetor A com n inteiros para i 0 até n-1 faça fim para retorne imprime ( A[ i ] ) 18
19 Análise por Operações Primitivas Exemplo 2.2. Faça a análise por operações primitivas dos algoritmos apresentados abaixo c) Algoritmo maxnum(a,b): Entrada: inteiros a e b Saída: elemento máximo entre a e b maximo a se a < b então fim se maximo b retorne maximo 19
20 Análise por Operações Primitivas Exemplo 2.2. Faça a análise por operações primitivas dos algoritmos apresentados abaixo d) Algoritmo maxelemento(a): Entrada: vetor A com n inteiros Saída: elemento máximo de A maximo A[0] para i 1 até n-1 faça se A[i] > maximo então maximo A[i] fim se fim para retorne maximo 20
21 Análise por Operações Primitivas Exercício 2.1. Escreva, utilizando pseudo-código, um algoritmo que imprima a média aritmética de n números digitados pelo usuário. Exercício 2.2. Faça a análise por operações primitivas do algoritmo criado no Exercício 2.1. Exercício 2.3. Escreva, utilizando pseudo-código, um algoritmo que tenha como entrada um vetor de inteiros com tamanho n e que verifique se um determinado número digitado pelo usuário está presente. Exercício 2.4. Faça a análise por operações primitivas do algoritmo criado no Exercício
22 Análise por Operações Primitivas Exercício 2.5. Escreva, utilizando pseudocódigo, uma função que receba duas matrizes reais quadradas (com n linhas) e gere a sua soma. Exercício 2.6. Faça a análise por operações primitivas do algoritmo criado no Exercício
23 Análise do Pior Caso e do Caso Médio Complexidade Definição 2.1. seja A um algoritmo, {E 1,..., E m } o conjunto de todas as entradas possíveis de A. Denote por t i o número de passos efetuados por A, quando a entrada for E i. Definemse Complexidade do pior caso = Complexidade do melhor caso = Complexidade do caso médio =. max t i t na qual p i é a probabilidade de ocorrência da entrada E i E i min m i1 E E p i t i i E i 23
24 Análise do Pior Caso e do Caso Médio pior caso caso médio? melhor caso 24
25 Análise do Pior Caso e do Caso Médio Análise do caso médio e do pior caso Análise do tempo médio requer conhecimento das distribuições de probabilidades das entradas A análise do pior caso é geralmente utilizada 25
26 Análise do Pior Caso e do Caso Médio Analisando detalhadamente o tempo de execução, surgem as seguintes questões Este nível de detalhamento é realmente importante? Será tão importante definir o número exato de operações primitivas executadas pelo algoritmo? Quão cuidadosamente deve-se definir o conjunto de operações primitivas? Exemplo: y = a*x + b 26
27 2.3. Notação Assintótica Simplificação da análise Análise da taxa de crescimento Ex.: o algoritmo maxelemento» pior caso: 8n-2» cresce proporcionalmente a n Despreza os fatores constantes Ex.: n 2 c 1 n 2 c 2 27
28 2.3. Notação Assintótica Utilizadas para analisar o tempo de execução Notação O : limite assintótico superior» Pior caso Notação : limite assintótico inferior Notação : limite assintótico restrito 28
29 Notação O Definição 2.2. Sejam f(n) e g(n) duas funções mapeando inteiros não-negativos para números reais. Então f(n) é O(g(n)) se existem uma constante real c>0 e uma constante inteira n 0 1 tal que: 0 f(n) c g(n) para todo n n 0 29
30 Tempo de Execução Ilustração da Notação O Notação O c g(n) f(n) n o 30
31 Notação O Exemplo n 2 é O(n)? 31
32 Notação O Permite dizer que uma função de n é menor que ou igual a outra função Até um fator constante no sentido assintótico, já que n cresce para o infinito Fornece um limite assintótico superior para o tempo de execução 32
33 Notação O Proposição 2.3. O tempo de execução do algoritmo maxelemento para a computação do máximo elemento em um vetor de n inteiros é O(n) Justificativa: - O número de operações primitivas para o pior caso (Exemplo 1) é 8n-2 - Considerando que existe uma constante k dependente do tempo de execução, o tempo de execução do algoritmo é k(8n-2) -Considerando que c=8k e n 0 =1, o tempo de execução do algoritmo maxelemento é O(n). 33
34 Notação O Exemplo 2.4. Mostre que 20n n (log n) + 5 é O(n 3 ) De fato, qualquer polinômio a k n k + a k-1 n k a 0 é sempre O(n k ) 34
35 Notação O Exercício 2.7. Mostre que a) 3 (log n) + 5 ( log (log n) ) é O(log n) b) 5/n é O(1/n ) c) é O(1) d) (n+1) 5 é O(n 5 ) 35
36 Notação O Terminologia para classes de funções Logarítmica: O(log n) Linear: O(n) Quadrática: O(n 2 ) Polinomial: O(n k ) (k1) Exponencial: O(a n ) (a>1) Fatorial: O(n!) 36
37 Notação O log 2 n n n log 2 n n 2 n 3 2 n ,84467E ,40282E n n 3 n 2 n log 2 n n log 2 n
38 Notação Definição 2.3. Sejam f(n) e g(n) duas funções mapeando inteiros não-negativos para números reais. Então f(n) é (g(n)) se existem uma constante real c>0 e uma constante inteira n 0 1 tal que: 0 c g(n) f(n) para todo n n 0 38
39 Tempo de Execução Ilustração da Notação Notação f(n) c g(n) n o 39
40 Notação Permite dizer que uma função de n é maior que ou igual a outra função Até um fator constante e no sentido assintótico já que n cresce para o infinito Fornece um limite assintótico inferior para o tempo de execução 40
41 Notação Definição 2.4. Sejam f(n) e g(n) duas funções mapeando inteiros não-negativos para números reais. Então f(n) é (g(n)) se existem constantes reais c 1 >0 e c 2 >0 e uma constante inteira n 0 1 tal que: 0 c 1 g(n) f(n) c 2 g(n) para todo n n 0 41
42 Tempo de Execução Notação Ilustração da Notação c 2 g(n) f(n) c 1 g(n) n o 42
43 Notação Permite dizer que duas funções são assintoticamente iguais até um fator constante Fornece um limite assintótico restrito para o tempo de execução 43
44 Outras Notações Notações o e Parentes, respectivamente, das notações O e Denotam limites que não são assintoticamente restritos (n 0 >0)» Exemplo: o 0 f(n) < c g(n) para todo n n 0 44
45 2.4. Análise Assintótica Permite analisar os tempos de execução dos algoritmos por meio das Notações Assintóticas Determinação da ordem de crescimento (em função do tamanho das entradas) do tempo de execução de um programa» sem haver preocupação com o valor das constantes envolvidas 45
46 2.4. Análise Assintótica Utiliza técnicas de matemática discreta Envolvendo contagem dos elementos que possuam uma propriedade comum Infelizmente, não existe um conjunto completo de regras para a análise de programas No entanto, podemos enumerar alguns princípios a serem seguidos 46
47 2.4. Análise Assintótica Princípios para a análise de algoritmos 1. O tempo de execução de um comando simples de atribuição, leitura ou escrita pode ser considerado como O(1) 2. O tempo de execução de um bloco de comandos é determinado pelo maior tempo de execução de um comando deste bloco 3. O tempo de execução de um comando de decisão é composto pelo tempo de execução de seu bloco de comandos condicionais, mais o tempo para avaliar as suas condições (que geralmente Introdução à Computação são O(1) II ) 47
48 2.4. Análise Assintótica Princípios para a análise de algoritmos 4. O tempo para executar um anel (loop) é a soma do tempo de execução do bloco de comandos (corpo) do anel mais o tempo para avaliar a condição de parada, multiplicado pelo número de iterações deste anel 5. Quando o programa possui procedimentos nãorecursivos, o tempo de execução de cada procedimento deve ser computado separadamente, iniciando com os procedimentos que não chamam outros procedimentos 48
49 Exemplo 2.5. Análise Assintótica 2.4. Análise Assintótica Algoritmo prefixmedia1(x): Entrada: vetor X com n números Saída: vetor A com n números tal que A[i] é a média dos elementos X[0],...,X[i] Seja A um vetor com n números. para i 0 até n-1 faça a n-1=n(n-1)/2 para j 0 até i faça a a+x[j] fim para A[i] a/(i+1) fim para retorne A 49
50 Exemplo 2.6. Análise Assintótica Algoritmo prefixmedia2(x): Entrada: vetor X com n números Análise Assintótica Saída: vetor A com n números tal que A[i] é a média dos elementos X[0],...,X[i] Seja A um vetor com n números. s 0 para i 0 até n-1 faça n s s+x[i] A[i] s/(i+1) fim para retorne A 50
51 Exemplo 2.6. Análise Assintótica (continuação) Análise Assintótica O tempo de execução do algoritmo prefixmedia1() é O(n 2 ) enquanto que o do algoritmo prefixmedia2() é O(n) Assim, levando-se em conta a análise assintótica do tempo de execução, o algoritmo prefixmedia2() é mais interessante que o do algoritmo prefixmedia1() 51
52 Exercícios Exercício 2.8. Faça a análise assintótica (Notação O ) do tempo de execução do Algoritmo maxelemento() apresentado no Exemplo 2.1. Exercício 2.9. Faça a análise por operações primitivas e análise assintótica de um algoritmo que verifique se um determinado valor digitado pelo usuário está presente em uma matriz n x m 52
53 Exercícios Exercício Implemente os algoritmos desenvolvidos nos Exercícios 2.1, 2.3 e 2.5, e Obtenha os tempos de execução para n=3000, n=10000 e n=30000 Faça a análise assintótica 53
2. Algoritmos. Prof. Renato Tinós. Local: Depto. de Computação e Matemática (FFCLRP/USP) Introdução à Computação I IBM1006
Introdução à Computação I IBM1006 2. Algoritmos Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 2. Algoritmos 2.1. Introdução 2.2. Pseudo-código 2.3. Fluxograma
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 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 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 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 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 maisIntrodução à Ciência da Computação II
Introdução à Ciência da Computação II Análise de Algoritmos: Parte I Prof. Ricardo J. G. B. Campello Este material consiste de adaptações e extensões de slides disponíveis em http://ww3.datastructures.net
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 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 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 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 mais4. Algoritmos de Busca em Vetores
Introdução à Computação II 5952011 4. Algoritmos de Busca em Vetores Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 4.1. Introdução 4.2. Busca Linear 4.2.1.
Leia 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 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 maisAnálise de algoritmos
Análise de algoritmos SCE-181 Introdução à Ciência da Computação II Alneu Lopes Thiago A. S. Pardo 1 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 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 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 maisAnálise de algoritmos. Parte I
Análise de algoritmos Parte I 1 Procedimento X Algoritmo Procedimento: sequência finita de instruções, que são operações claramente descritas, e que podem ser executadas mecanicamente, em tempo finito.
Leia maisTeoria dos Grafos Aula 7
Teoria dos Grafos Aula 7 Aula passada Implementação BFS DFS, implementação Complexidade Aplicações Aula de hoje Classe de funções e notação Propriedades da notação Funções usuais Tempo de execução Comparando
Leia mais03 Análise de Algoritmos (parte 3) SCC201/501 - Introdução à Ciência de Computação II
03 Análise de Algoritmos (parte 3) SCC201/501 - Introdução à Ciência de Computação II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2010/2 Moacir
Leia maisESTRUTURAS DE DADOS prof. Alexandre César Muniz de Oliveira
ESTRUTURAS DE DADOS prof. Alexandre César Muniz de Oliveira 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Grafos 7. Complexidade 8. Ordenação 9. Busca Sugestão bibliográfica: ESTRUTURAS DE DADOS
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 mais4. Algoritmos de Busca em Vetores
Introdução à Computação II 5952011 4. Algoritmos de Busca em Vetores Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 4.1. Introdução 4.2. Busca Linear 4.2.1.
Leia 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 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 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 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 maisAnálise de complexidade
Introdução Algoritmo: sequência de instruções necessárias para a resolução de um problema bem formulado (passíveis de implementação em computador) Estratégia: especificar (definir propriedades) arquitectura
Leia 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 maisAnálise de algoritmos Parte I
Parte I SCE-8 Introdução à Ciência da Computação II Rosane Minghim Algoritmo Noção geral: conjunto de instruções que devem ser seguidas para solucionar um determinado problema Cormen et al. (2002) Qualquer
Leia maisPreliminares. Profa. Sheila Morais de Almeida. agosto
Preliminares Profa. Sheila Morais de Almeida DAINF-UTFPR-PG agosto - 2016 Algoritmos Definição - Skiena Algoritmo é a ideia por trás dos programas de computador. É aquilo que permanece igual se o programa
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 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 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 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 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 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 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 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 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 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 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 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 maisGBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO. Teoria de Algoritmos: Complexidade
GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de Algoritmos: Complexidade Ilmério Reis da Silva ilmerio@ufu.br www.facom.ufu.br/~ilmerio/icc UFU/FACOM/BCC Introdução Antes de executar um programa é
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 mais01 Análise de Algoritmos (parte 2) SCC201/501 - Introdução à Ciência de Computação II
01 Análise de Algoritmos (parte 2) SCC201/501 - Introdução à Ciência de Computação II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2010/2 Moacir
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 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 maisProgramação de Computadores
Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Alguns Conceitos sobre Linguagens Conceito de Algoritmo Pseudocódigo
Leia maisUniversidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções
Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: funções Prof. Renato Pimentel 1 Subprogramas Subprograma: programa que auxilia o programa principal na realização de uma determinada
Leia maisProgramação de Computadores
Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Fluxograma e pseudocódigo Elementos de um fluxograma Pseudocódigo
Leia maisTeoria da Computação Aula 8 Noções de Complexidade
Teoria da Computação Aula 8 Noções de Complexidade Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Motivação: Por que estudar algoritmos? Perguntas: - Por que estudar algoritmos se os computadores
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 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 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 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 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 mais1.1 o que é um algoritmo... 6
sumário introdução 1 1 fundamentos 5 1.1 o que é um algoritmo... 6 1.1.1 algoritmos executados por um computador...7 1.1.2 comandos básicos executados por um computador...11 1.1.3 da necessidade do desenvolvimento
Leia maisTeoria da computabilidade Indecidíveis Decidíveis
Bacharelado em Ciência da Computação Disciplina: Algoritmos e Estruturas de Dados I Professor: Mário Luiz Rodrigues Oliveira Teoria da computabilidade Indecidíveis Decidíveis Teoria da complexidade Intratáveis:
Leia maisAnálise de algoritmos Parte I
Análise de algoritmos Parte I SCE-181 Introdução à Ciência da Computação II Rosane Minghim Algoritmo Noção geral: conjunto de instruções que devem ser seguidas para solucionar um determinado problema Cormen
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 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 maisa complexidade no desempenho de algoritmos
capítulo 1 introdução Os algoritmos são o cerne da computação. Este capítulo introdutório procura ressaltar a importância da complexidade e dos métodos de projeto e análise de algoritmos. Partindo da ideia
Leia maisESTRUTURAS DE DADOS E ALGORITMOS APRESENTAÇÃO DO CURSO E INTRODUÇÃO
ESTRUTURAS DE DADOS E ALGORITMOS APRESENTAÇÃO DO CURSO E INTRODUÇÃO Adalberto Cajueiro (adalberto@computacao.ufcg.edu.br) Departamento de Sistemas e Computação Universidade Federal de Campina Grande 1
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 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 maisTeoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.
Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br Grafos e Algoritmos Preparado a partir do texto: Rangel, Socorro.
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 maisPDA - Repetição. Estruturas de repetição. Slides adaptação de Deise Saccol
PDA - Repetição Estruturas de repetição Slides adaptação de Deise Saccol 1 Existem situações em que o processamento de um valor uma única vez não é suficiente para resolver o problema. Quando isto ocorre,
Leia maisNoções de complexidade de algoritmos
Noções de complexidade de algoritmos 358 Tempo de Execução A avaliação de desempenho de um algoritmo quanto executado por um computador pode ser feita a posteriori ou a priori. Uma avaliação a posteriori
Leia maisProgramação de Computadores
Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Alguns Conceitos sobre Linguagens Conceito de Algoritmo Pseudocódigo
Leia maisMCTA028 Programação Estruturada Aula 19 Custos de um algoritmo e funções de complexidade
MCTA028 Programação Estruturada Aula 19 Custos de um algoritmo e funções de complexidade Prof. Jesús P. Mena-Chalco 3Q-2017 1 0 A = n-1... 2 0 A = n-1... - O programa funciona (está correto)? - Como medir/mensurar
Leia maisProgramação Estruturada
Algoritmos e Técnicas - Estruturas de Controle de Fluxo - Programação Estruturada Programação estruturada é a técnica de construir e formular algoritmos de uma forma sistemática. Utilizada para apresentar
Leia maisEstruturas de Repetição
Algoritmos e Lógica de Programação Construção de Algoritmos Estruturas de Repetição Reinaldo Gomes reinaldo@cefet-al.br Estruturas de Repetição Com o conhecimento adquirido até aqui, ainda não é possível
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 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 maisProjeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Conceitos básicos Metodo de provas: Indução Diane Castonguay diane@inf.ufg.br Instituto de Informática Universidade Federal de Goiás Notações = para todo = existe! = único
Leia maisClassificação de Dados
Engenharia de CONTROLE e AUTOMAÇÃO Classificação de Dados Aula 01 DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria beltrame@mail.ufsm.br
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 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 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 maisLógica de Programação Completo
CONTEÚDO PROGRAMÁTICO Lógica de Programação Completo Carga horária: 40 horas TreinaWeb Tecnologia LTDA CNPJ: 06.156.637/0001-58 Av. Paulista, 1765 - Conj 71 e 72 São Paulo - SP CONTEÚDO PROGRAMÁTICO 1
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 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 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 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 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 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 maisUniversidade Federal de Uberlândia Faculdade de Computação. Linguagem C: estruturas de repetição While / Do While / For
Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: estruturas de repetição While / Do While / For Prof. Renato Pimentel 1 Estruturas de repetição O real poder dos computadores está
Leia mais3. Linguagem de Programação C
Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.7. Funções 3.7.1. Introdução 3.7.2. Uso de
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 maisO que é um Algoritmo?
Introdução a Ciências da Computação Capítulo 2 O que é um Algoritmo? Página Tópicos Histórico Estruturas de Controle Comandos em seqüência Estruturas Condicionais Álgebra Booleana Estruturas de Repetição
Leia maisMódulo 7. Complexidade de Algoritmos. Algoritmos e Estruturas de Dados II C++ Rone Ilídio
Módulo 7 Complexidade de Algoritmos Algoritmos e Estruturas de Dados II C++ Rone Ilídio Tempo de execução de um programa Qual algoritm executará mais rápido? int main(){ SYSTEMTIME inicio,fim; GetSystemTime(&inicio);
Leia maisESTRUTURAS DE REPETIÇÃO - PARTE 1
AULA 15 ESTRUTURAS DE REPETIÇÃO - PARTE 1 15.1 O comando enquanto-faca- Considere o problema de escrever um algoritmo para ler um número inteiro positivo, n, e escrever todos os números inteiros de 1 a
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 maisAlgoritmos Estrutura Condicional
Algoritmos Estrutura Condicional Aula 06 Diogo Pinheiro Fernandes Pedrosa http://www2.ufersa.edu.br/portal/professor/diogopedrosa diogopedrosa@ufersa.edu.br Universidade Federal Rural do Semiárido Bacharelado
Leia maisPlanificação a médio e longo prazo. Matemática B. 11º Ano de escolaridade. Total de aulas previstas: 193. Ano letivo 2015/2016
Planificação a médio e longo prazo Matemática B 11º Ano de escolaridade. Total de aulas previstas: 193 Ano letivo 2015/2016 Professor responsável: Paulo Sousa I O programa Matemática B do 11º Ano - Página
Leia maisEstruturas de Repetição. Estruturas de Repetição. Estruturas de Repetição. Estruturas de Repetição. Estruturas de Repetição Condicionais
Construção de Algoritmos Algoritmos e Lógica de Programação Com o conhecimento adquirido até aqui, ainda não é possível fazer iterações! Como escrever algoritmos que façam iteração de instruções? Usar!
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 mais