An Lise De Complexidade

2312 palavras 10 páginas


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 que usa 1GB



Medir o tempo gasto por um algoritmo
 Não é uma boa opção
 Depende do compilador
▪ Pode preferir algumas construções ou otimizar melhor
 Depende do hardware
▪ GPU vs. CPU, desktop vs. smartphone



Estudar o número de vezes que operações são executadas



Achar o máximo de um vetor int vmax(int *vec, int n) { int i; int max = vec[0]; for(i = 1; i < n; i++) { if(vec[i] > max) { max = vec[i];
}
} return max;
}




Complexidade: f(n) = n-1
Esse algoritmo é ótimo

1 n-1 n-1
A < n-1 n-1 n-1
1



Análise de complexidade feita em função de n
 n indica o tamanho da entrada
▪ Número de elementos no vetor
▪ Número de vértices num grafo
▪ Número de linhas de uma matriz



Diferentes entradas podem ter custo diferente
 Melhor caso

 Pior caso
 Caso médio








Recuperar um registro num arquivo procurando sequencialmente
Quantos registros precisam ser processados em uma busca?
Melhor caso: f(n) = 1
Pior caso: f(n) = n
Caso médio: f(n) = (n+1)/2
 Supondo que registros procurados estão presentes

no arquivo e que registros são pesquisados com a mesma probabilidade



Problema: encontrar o valores minimo e máximo em um vetor

1
1
n-1 n-1 A < n-1 n-1 B < n-1
-

void minmax(int *vec, int n, int *min, int *max) { int i; int *min = vec[0]; int *max = vec[0]; for(i = 1; i < n; i++) { if(vec[i] < *min) {
*min = vec[i];
}
if(vec[i] > *max) {
*max = vec[i]; melhor caso: f(n) = 2(n-1)
}
pior caso: f(n) = 2(n-1)
}
} caso médio: f(n) = 2(n-1)



Se vec[i] < *min, então não precisamos checar se vec[i] > *max

1
1
n-1 n-1 A < n-1 n-1-A B < n-1-A
-

void minmax2(int *vec, int n, int *min, int *max) { int i; melhor caso: int *min = vec[0]; int *max = vec[0];
(decrescente)
for(i = 1; i < n; i++) { f(n) = n-1 if(vec[i] < *min) {
*min =

Relacionados

  • An Lise E Complexidade Dos Algoritmos
    912 palavras | 4 páginas
  • Algoritmo ordenação
    3859 palavras | 16 páginas
  • Grafos - Conjunto dominante de vértices
    945 palavras | 4 páginas
  • Gestão de Pessoas Unidade 5 UAM
    1051 palavras | 5 páginas
  • Complexidade de Algoritmos
    2171 palavras | 9 páginas
  • Quick Hull
    3179 palavras | 13 páginas
  • Complexidade de algoritmo
    4595 palavras | 19 páginas
  • apostila orientacao objetos
    101236 palavras | 405 páginas
  • Identificação de imagens paralelas
    1624 palavras | 7 páginas
  • Casos de uso
    5148 palavras | 21 páginas