Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouMilena Spinola Alterado mais de 10 anos atrás
1
março/2000katia@di.ufpe.br1 Complexidade de Computação Para avaliar a qualidade de um algoritmo usamos como critério o espaço e o tempo de execução. Ao processo de estimar o espaço em memória e o tempo necessário para executar um algoritmo chamamos de Análise de Algoritmos. Como para usar um espaço de memória demanda tempo, o maior cuidado é sempre dado à avaliação deste fator.
2
março/2000katia@di.ufpe.br2 Complexidade de Computação Como entradas maiores requerem mais tempo de processamento, o tempo de execução (ou custo) de um algoritmo é dado como uma função do tamanho da entrada. Ex. - Quantidade de números para ordenação - Número de linhas e de colunas para matrizes. O tempo de execução de um algoritmo define um limite superior para o tempo de solução do problema.
3
março/2000katia@di.ufpe.br3 Complexidade de Computação O tempo de execução varia de entrada para entrada, e a análise pode ser feita em função do pior caso ou do caso médio sobre todas as entradas de tamanho n. Como o caso médio requer muitas vezes uma análise mais elaborada, e em geral dá o mesmo resultado do caso médio, nós adotaremos a análise do pior caso.
4
março/2000katia@di.ufpe.br4 Complexidade de Computação Nós porém não estamos interessados no tempo exato, mas sim em saber como a função cresce com o tempo. Observe porque: | n 60 n 2 + 5n + 1 60 n 2 | 10 6.051 6.000 | 100 600.501 600.000 | 1.000 60.005.001 60.000.000 | 10.000 6.000.050.001 6.000.000.000
5
março/2000katia@di.ufpe.br5 Complexidade de Computação Assim, se f(n) = 60 n 2 + 5n+1 e g(n) = 60n 2, dizemos que f = (g) (lê-se: f é da ordem exata de g). Definição formal: 1. f = (g) se existem constantes positivas c e n o, tais que: n > n o, f(n) c. g(n). 2. f = (g) se f = (g) e também g = (f).
6
março/2000katia@di.ufpe.br6 Complexidade de Computação Observe que entre f (n) = 60 n 2 + 5n+1 e g(n) = 60n 2, temos: f = ( g) e g = (f). Por conta disso, dizemos que f = (g). Reciprocamente, temos g = (f). Note que nem sempre é o caso de f = ( g) e g = ( f). Ex: f (n) = n 2 e g(n) = n 3.
7
março/2000katia@di.ufpe.br7 Complexidade de Computação Se f = ( g) dizemos que g é um limite superior de f. Intuitivamente, para valores arbitrariamente grandes de n, o valor de f (n) não é maior do que o valor de f (n), a menos de uma constante multiplicativa.
8
março/2000katia@di.ufpe.br8 Complexidade de Computação Se g é um limite superior de f, então dizemos também que f é um limite inferior de g, denotado por: g = (f). Observe que se f = ( g) então g = (f).
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.