Escolar Documentos
Profissional Documentos
Cultura Documentos
09 - PROG AVANCADA - Analise de Tempo de Execucao - Maurício
09 - PROG AVANCADA - Analise de Tempo de Execucao - Maurício
2022
Tempo de execução
• Vários fatores afetam o tempo de execução de um programa:
• computadores mais/menos potentes
• instâncias (entradas) pequenas/grandes
• sistema operacional
• linguagem de programação
• estrutura de dados
• programador
• etc...
Tempo de execução
• Vamos considerar um modelo que independa desses
detalhes, mas que nos dá informações suficientes sobre o
comportamento do programa (a priori):
• Ele contém passos básicos que podem ser realizados
rapidamente sobre números pequenos:
• aritmética (cálculos)
• relacional (teoria dos conjuntos)
• lógica (verdadeiro ou falso)
• movimentação (banco de dados)
• controle de fluxo (ordem das instruções)
• etc...
Tempo de execução
• Definição:
• O tempo de execução de um algoritmo é a quantidade de
passos básicos executados por ele sobre uma certa
entrada.
• Como o tempo tende a crescer conforme o tamanho da
entrada cresce, usamos uma função no tamanho da
entrada para descrevê-lo: T(n), f(n), g(n)...
• O tamanho da entrada pode variar com o problema:
• Problema que envolve vetor: n = tamanho do vetor
• Problema que envolve variável inteira: n = quantidade de
bits para armazenar o inteiro
Exemplo 1 - Busca linear
Considerar que cada ação gasta 1 unidade de tempo (u.t.) para ser executada.
Se chave Se chave não
BuscaLinear(A, n, k)
encontrada encontrada
1 i = 1 1 1
2 enquanto i <= n faça nk n+1
3 se A[i] == k então 2nk 2n
4 devolve i 1 0
5 i = i + 1 2(nk - 1) 2n
6 devolve -1 0 1
• Chave encontrada:
f(n) = 11xk - 1
f(n) = 11(log2n) + 1 - 1 = 11.log2n
f(n) = ?
f(n) = ?
Pausa para você
tentar.
Agora é a sua
vez!
Exercícios
1. Continuação...
c)
1. let a = 0;
2. for(let i = 1; i < 5; i++) {
3. a = a + 1;
4. console.log(i);
5. }
6. console.log(a);