Complexidade de Algoritmos
|
|
- Lúcia Coradelli Klettenberg
- 7 Há anos
- Visualizações:
Transcrição
1 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 possível obter este tempo a partir de métodos analíticos 1
2 Complexidade de Algoritmos! Métodos analíticos! objetivo: determinar uma expressão matemática que traduza o comportamento de tempo de um algoritmo.! o tempo de execução independente:! do método utilizado! da linguagem e compiladores empregados! e das condições locais de processamento 2
3 Complexidade de Algoritmos! obter uma expressão matemática não é simples, mesmo considerando uma expressão aproximada! Várias simplificações são introduzidas! quantidade de dados a serem manipulados pelo algoritmo é suficientemente grande! quantidade de dados de entrada reduzida não serão considerados 3
4 Complexidade de Algoritmos! somente o comportamento assintótico é avaliado! não serão consideradas constantes aditivas ou multiplicativas na expressão considerada 4
5 Complexidade de Algoritmos! Qual a variável em relação à qual a expressão matemática avaliará o tempo de execução?! Um algoritmo funciona a partir de uma entrada para produzir uma saída dentro de um tempo! fornecer o tempo de execução em função da entrada 5
6 Complexidade de Algoritmos! O processo de execução de um algoritmo pode ser dividido em etapas elementares - passos! um número fixo de operações básicas cujo tempo de execução é considerado constante! a operação básica de maior freqüência de execução do algoritmo é denominada operação dominante 6
7 Complexidade de Algoritmos! expressão de tempo de execução! obtida a menos de constantes aditivas e multiplicativas:! número de passos! número de execuções da operação dominante! A expressão matemática de avaliação do tempo de execução de um algoritmo! função que fornece o número de passos efetuados no algoritmo a partir de uma certa entrada 7
8 Complexidade de Algoritmos! Por exemplo: algoritmos para ordenar os elementos de uma seqüência dada! cada passo corresponde a comparação entre dois elementos da seqüência! O número de passos de um algoritmo! informação necessária para avaliar seu comportamento no tempo 8
9 Complexidade de Algoritmos! Inversão de uma seqüência fim = n/2; (++ i for (i=0; i<fim; { temp = S[i]; S[i] = S[n-1-i]; S[n-1-i] = temp; } 9
10 Complexidade de Algoritmos! n = 5 troca S[i] por S[n-1-i]! fim = 2 ([ S[4 )! i = 0 troca S[0] por S[5-1-0] ([ S[3 )! i = 1 troca S[1] por S[5-1-1] inicial M A R I A final A I R A M 10
11 Complexidade de Algoritmos! n = 6 troca S[i] por S[n-1-i]! fim = 3 ([ S[5 )! i = 0 troca S[0] por S[6-1-0] ([ S[4 )! i = 1 troca S[1] por S[6-1-1] ([ S[3 )! i = 2 troca S[2] por S[6-1-2] inicial final E S T A D O O D A T S E 11
12 Complexidade de Algoritmos! n = 50 troca S[i] por S[n-1-i]! fim = 25 ([ S[49 )! i = 0 troca S[0] por S[50-1-0] ([ S[48 )! i = 1 troca S[1] por S[50-1-1] ([ S[47 )! i = 2 troca S[2] por S[50-1-2]... ([ S[26 )! i = 23 troca S[23] por S[ ] ([ S[25 )! i = 24 troca S[24] por S[ ] 12
13 Complexidade de Algoritmos! o algoritmo executa extamente as mesmas operações para seqüências de tamanho n! cada passo corresponde à troca de posição entre dois elementos da seqüência! a execução das três atribuições! o número de passos é igual ao número de vezes que executa o bloco for n/2, n>1 13
14 Complexidade de Algoritmos! Problema: determinar a soma C e o produto D de duas matrizes dadas A e B.! A = (a ij ) e B = (b ij ) ambas n x n! C e D também serão matrizes n x n! seus elementos podem ser calculados como: c ij = a ij + b ij d ij = a ik * b kj 1 k n 14
15 Complexidade de Algoritmos! Soma (++ i for(i=0; i<n; (++ j for(j=0; j<n; c ij = a ij + b ij ;! Produto (++ i for(i=0; i<n; for(j=0; j<n; j++){ } d ij = 0; for(k=0; k<n; k++) d ij = d ij + a ik * b kj ; 15
16 Complexidade de Algoritmos! Seja A um algoritmo! {E 1,...E m } o conjunto de todas as entradas possíveis de A! seja t i o número de passos efetuados por A quando a entrada for E i 16
17 Complexidade de Algoritmos! Complexidade do pior caso: max Ei E {t i }! Complexidade do melhor caso: min Ei E {t i }! Complexidade do caso médio: Σ 1 i m p i t i! p i é a probabilidade de ocorrência da entrada E i 17
18 Complexidade de Algoritmos! De forma análoga podem ser definidas complexidades de espaço de um algoritmo! complexidade tem por objetivo avaliar a eficiência de tempo ou espaço 18
19 Complexidade de Algoritmos! Complexidade de tempo do pior caso! para a entrada mais desfavorável! é a mais importante das três mencionadas! fornece um limite superior para o número de passos 19
20 Complexidade de Algoritmos! Complexidade de pior caso! Complexidade de melhor caso! de uso bem menos freqüente! em algumas situações específicas! Complexidade de caso médio! menos utilizada apesar de importante! difícil conhecer a distribuição de probabilidades das diferentes entradas 20
21 Recursividade! um procedimento recursivo é aquele que contém uma ou mais chamadas a si mesmo! a todo procedimento recursivo corresponde um não recursivo! os programas recursivos são mais concisos! relação direta com a prova por indução matemática 21
22 Recursividade! Cálculo de fatorial x! = se (x <=0) então 1 senão x * (x-1)! 22
23 Recursividade Implementação não recursiva x! = se x <=0 1 senão x * (x-1)! ( N int fatorial (int { int result = 1; (++ i for (i=1; i<=n; result = result * i; return (result); } 23
24 Recursividade Implementação recursiva x! = se x <=0 1 senão x * (x-1)! ( N int fatorial (int { ( 1 (N<= if return(1); else return( N * fatorial(n-1)); } 24
25 Recursividade ( 4 )! X= fatorial ( fatorial(3)! return( 4* ( fatorial(2)! return( 3* ( fatorial(1)! return( 2* ( 1 return(! 25
26 Análise de Recursividade! relação de recorrência! a função é definida em termos dela própria, recursivamente! substituição repetida ( N int fatorial (int { ( 1 (N<= if return(1); else return( N * fatorial(n-1)); } 26
27 Análise de Recursividade ( N int fatorial (int { ( 1 (N<= if return(1); else return( N * fatorial(n-1)); } 27
28 Análise de Recursividade ( T(n! tempo de processar o algoritmo para entrada n! número de passos ou operações dominantes Fatorial T(n) = 1, se n = 0 = T(n-1) + 1, se n > 0 mas quanto é T(n-1)? ( N int fatorial (int { ( 1 (N<= if return(1); else return( N * fatorial(n-1)); } 28
29 T(n) - Fatorial Passos iteração = (T(n-1)) + 1-1ª substituição = (T(n-2) + 1) + 1 = T(n-2)
30 T(n) - Fatorial Passos iteração = (T(n-1)) + 1-1ª substituição = (T(n-2) + 1) + 1 = T(n-2) + 2-2ª substitição = (T(n-3) + 1) + 2 = T(n-3)
31 T(n) - Fatorial Passos iteração = (T(n-1)) + 1-1ª substituição = (T(n-2) + 1) + 1 = T(n-2) + 2-2ª substitição = (T(n-3) + 1) + 2 = T(n-3) + 3-3ª substituição 31
32 T(n) - Fatorial Passos iteração = (T(n-1)) + 1-1ª substituição = (T(n-2) + 1) + 1 = T(n-2) + 2-2ª substitição = (T(n-3) + 1) + 2 = T(n-3) + 3-3ª substituição = T(n-k) + k - k-ésima substituição 32
33 T(n) - Fatorial! Então, T(n) = T(n-k) + k, 1 k n! se a k-ésima interação é a última, então:! n-k = 0 e T(0) = 1! Assim, n = k, e T(n) = n
34 Maior elemento de uma lista maior = a[0]; (++ i for ( i =0; I < N; if (maior < a[i]) maior = a[i]; return (maior); 34
35 Resolva as recorrências! T(n) = 1, se n = 0 = 2 T(n-1) + 1, se n >0! T(n) = 1 se n = 1 = T(n/2) + 1 se n>1! T(n) = 1 se n = 1 = 2T(n/2) - n se n > 1 35
36 Qual melhor algoritmo?! Sejam A e B dois algoritmos que o resolvem o problema P, cujos tempos de execução são T A (n) e T B (n)! comportamento assintótico tamanho da entrada arbitrariamente grande ( O! caracterizado pela notação O (big 36
37 A notação Ο! Sejam f(n) e h(n) funções reais não negativas da variável inteira n 0! f(n) = O (h(n)) quando existir uma constante c> 0 e um valor inteiro n o tal que ( c.h(n n > n o f(n) 37
38 A notação Ο f(n) = 8n é O (n 2 )? f(n) c.n 2?! Seja c =1 8n n 2, então 0 n 2 8n (n 16)(n+8) n 0 = 16 c =1, n o = 16, f (n) c.n 2 para todo n n 0 38
39 A notação Ο! Tempo (ou espaço) é contabilizado em número de ( armazenamento passos do algoritmo (unidade de! Análise do algoritmo determina uma função que depende do tamanho da entrada n. 10n 3 + 4n -10! à medida que n aumenta, o termo cúbico começa a dominar! A constante do termo cúbico tem relativamente a mesma importância que a velocidade da CPU 39
40 A notação Ο! Complexidade de pior caso! desprezar constantes aditivas ou multiplicativas! número de passos 3n será aproximado para n! interesse assintótico: termos de menor grau podem ser desprezados:! n 2 + n será aproximado para n 2! 6n 3 + 4n - 9 será aproximado para n 3 40
41 A notação Ο! A função atua como um limite superior assintótico da função f ( 2! f = n 2-1 f = Ο(n! f = n 2-1 f = Ο(n 3 ) ( Ο(1! f = 403 f = ( n! f = 5+2logn +3log 2 n f = Ο(log 2 ( Ο(n! f = 5+2 log n +3log 2 n f = ( n! f = 5.2 n +5n 10 f = Ο(2 41
42 A notação Ο! g(n), h(n) - funções reais positivas! k - constante! f 1 (n) = g(n) e f 2 (n) = h(n) ( O(h! O(g+h) = O(g) + ( O(g! O(k*g) = k O(g) = ({( h(n! f 1 (n) + f 2 (n) = O(max {g(n), (( h(n! f 1 (n) * f 2 (n) = O(g(n) * 42
43 A notação Ο! O algoritmo de inversão de uma seqüência:! o número de passos se mantém o mesmo para o mesmo valor de n! variável independente é n! as complexidades de pior, melhor e pior casos são iguais 43
44 A notação Ο! Para a inversão! efetua sempre n/2 passos então sua ( Ο(n complexidade é! Para a soma e o produto de matrizes n x n verifica-se complexidades! Ο(n 2 ) e Ο(n 3 ) respectivamente 44
45 A notação Ο! Para procedimentos recursivos pode-se aplicar a seguinte técnica! determina-se o número total de chamadas ao procedimento recursivo! calcula-se a complexidade de execução de uma única chamada! complexidade número de chamadas complexidade de uma chamada 45
46 A notação Ο! por outro lado, um outro exemplo:! duas matrizes A e B de dimensões n x n! um parâmetro x, com valores 0 ou 1! dependendo do valor de x! calcula a soma: se x =0 " A + B! ou o produto das matrizes: se x = 1" A * B 46
47 A notação Ο! entrada: n 2 +1 informações - tamanho O(n 2 )! se x =0 então complexidade: O(n 2 )! complexidade do melhor caso! se x = 1 então complexidade: O(n 3 )! complexidade do pior caso 47
48 Alguns conceitos! T (n) = O (1) : constante! T (n) = O (log log n) : super-rápido! T (n) = O (log n) : logarítmico muito bom! T (n) = O (n) : linear toda a entrada é visitada! T (n) = O (n log n) : limite de muitos problemas! T (n) = O (n 2 ) : quadrático! T (n) = O (n k ) : polinomial no tamanho da entrada! T (n) = O (k n ), O (n!), O (n n ) : exponencial ruim! 48
Medida 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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. 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 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 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 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 mais5. Análise de Complexidade de Algoritmos. João Pascoal Faria (versão original) Ana Paula Rocha (versão 2003/2004) Luís Paulo Reis (versão 2005/2006)
5. Análise de Complexidade de Algoritmos João Pascoal Faria (versão original) Ana Paula Rocha (versão 2003/2004) Luís Paulo Reis (versão 2005/2006) FEUP - MIEEC Prog 2-2006/2007 Introdução Algoritmo: conjunto
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 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 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 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 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 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 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
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 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 maisAnálise e Complexidade de Algoritmos
Análise e Complexidade de Algoritmos Funções Medidas de Complexidade Crescimento de funções Análise Assintótica Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Onde Estamos
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 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 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 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 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 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 maisAULA 17. Melhores momentos. Segmento de soma máxima. Segmento de soma máxima. Conclusões. Algumas técnicas
Melhores momentos Segmento de soma máxima Um segmento de um vetor v[0 n 1] é qualquer subvetor da forma v[e d] Problema: Dado um vetor v[0 n 1] de números inteiros, determinar um segmento v[e d] de soma
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 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 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 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 maisPesquisa: operação elementar
Pesquisa: operação elementar uma das operações mais usadas em programação pesquisas em: vectores, matrizes, tabelas de registos, ficheiros, tipos de dados estruturados (hierarquicos),... necessidade de
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 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 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 maisTécnicas de Projeto de Algoritmos
UNIVERSIDADE NOVE DE JULHO - UNINOVE Pesquisa e Ordenação Técnicas de Projeto de Algoritmos Material disponível para download em: www.profvaniacristina.com Profa. Vânia Cristina de Souza Pereira 03 _ Material
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 e Síntese de Algoritmos. Revisão CLRS, Cap. 4, 6
Análise e Síntese de Algoritmos Revisão CLRS, Cap. 4, 6 Contexto Revisão Algoritmos e complexidade Notação Fundamentos: somatórios, logaritmos, etc. Exemplos de algoritmos Ordenação Procura Selecção 2007/2008
Leia 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 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 maisComplexidade de Algoritmos
Complexidade de Algoritmos Prof. Diego Buchinger diego.buchinger@outlook.com diego.buchinger@udesc.br Prof. Cristiano Damiani Vasconcellos cristiano.vasconcellos@udesc.br Funções de Complexidade Considere
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
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 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 à 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 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 maisTeoria da Computação. Aula 4 Técnicas de Análise 5COP096. Aula 4 Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr
5COP096 Teoria da Computação Aula 4 Prof. Dr. Sylvio Barbon Junior 1 Sumário 1) Técnicas de Análise de Algoritmos 2) Paradigmas de Projeto de Algoritmos 1) Indução 2) Recursão 3) Algoritmos Tentativa e
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 maisTeoria da Computação. Computabilidade e complexidade computacional
Teoria da Computação Computabilidade e complexidade computacional 1 Computabilidade e Complexidade Computabilidade: verifica a existência de algoritmos que resolva uma classe de linguagens trata a possibilidade
Leia maisMedida do Tempo de Execução de um Programa. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP
Medida do Tempo de Execução de um Programa Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Medida do Tempo de Execução de um Programa O projeto de algoritmos é fortemente influenciado pelo estudo
Leia maisProjeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 09 Algoritmos de Ordenação Edirlei Soares de Lima Ordenação Problema: Entrada: conjunto de itens a 1, a 2,..., a n ; Saída: conjunto de itens
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 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 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 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 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 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 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 maisI. Correção de Algoritmos Não-Recursivos
I. Correção de Algoritmos Não-Recursivos Nos exercícios a seguir, você deverá demonstrar a correção dos algoritmos por meio dos conceitos vistos nos slides da Aula 03. 1) Prove que o seguinte algoritmo
Leia 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 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 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 Complexidade
PMR2300 Escola Politécnica da Universidade de São Paulo Algoritmos Um algoritmo é um procedimento descrito passo a passo para resolução de um problema em tempo finito. Formalização: máquinas de Turing.
Leia 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 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 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 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 maisEstrututas de Dados e Algoritmos. Estrutura de Dados e Algoritmos
Estruturas de Dados e Algoritmos Algoritmos conceitos básicos Algoritmo: Sequência de passos simples, claramente especificada, para resolver um determinado problema. Uma receita. Problemas e Algoritmos
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 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 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 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 maisLista de Exercícios de Algoritmos e Estruturas de Dados
Lista de Exercícios de Algoritmos e Estruturas de Dados Primeira Lista Universidade Federal do Rio de Janeiro UFRJ Professor Heraldo L. S. de Almeida, D.Sc. Monitor Carlos Eduardo Marciano 06/05/2016 Elaborada
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 mais