Cap 4 - Analise de algoritmos-4spp

Cap 4 - Analise de algoritmos-4spp - Análise de Algoritmos...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Análise de Algoritmos Algoritmo Entrada Saida Um algoritmo é um procedimento passo-a-passo, para resolver um determinado problema em tempo finito Estrutura de Dados 2 Referências Baseado no material que acompanha o livro: ! Estruturas de dados e Algoritmos em Java M. Goodrich e R. Tamassia, Bookman. ! Cap 4 - Obs .: repare que nós “pulamos” o cap 3, que é um capítulo novo da 4a edição Outras fontes: ! Introduction to Algorithms. T.H.Cormen, C.E.Leiserson, R.L.Rivest e Stein. McGraw-Hill. Estrutura de Dados 3 Tempo de execução A maioria dos algoritmos transforma objetos de entrada em objetos de saída O tempo de execução de um algoritmo tipicamente cresce à medida que aumentamos o tamanho de sua entrada O caso médio muitas vezes é difícil de se determinar Melhor considerar o tempo de execução do pior caso. ! É mais fácil ! Crucial para aplicações como jogos, finanças e robótica 20 40 60 80 100 120 Running Time 1000 2000 3000 4000 Input Size best case average case worst case Estrutura de Dados 4 Método experimental Escreva um programa que implementa um algoritmo Execute o programa variando a composição e o tamanho das entradas Use algum método como uma rotina do sistema operacional para obter medidas precisas do tempo de execução Esboce um gráfico dos resultados obtidos 1000 2000 3000 4000 5000 6000 7000 8000 9000 50 100 Tamanho da entrada Tempo (ms) Estrutura de Dados 5 Experimentos são Limitados é preciso implementar o algoritmo em alguma linguagem de programação (Qual? Porque?) os resultados podem não servir como indicativo do tempo de execução para outras entradas que não foram consideradas nos testes para comparar dois algoritmos, deveriam ser utilizados os mesmos ambientes de hardware e software Estrutura de Dados 6 Análise Teórica baseada em uma descrição de alto nível do algoritmo, em vez de uma implementação caracteriza o tempo de execução como uma função do tamanho da entrada, n (bits) leva em consideração todas as possíveis entradas permite avaliar a rapidez de um algoritmo, independentemente do ambiente de hardware e/ ou software Estrutura de Dados 7 Pseudo-código (§3.2) Descrição de “alto nível” de um algoritmo (usa linguagem natural) Mais estruturada que um texto simples Menos detalhada que um programa Notação muito utilizada para descrever algoritmos Esconde detalhes de projeto dos programas Algoritmo arrayMax ( A , n ) Entrada: vetor A de n inteiros Saída: elemento máximo de A atualMax ! A [0] para i ! 1 até n- 1 faça se A [ i ] > atualMax então atualMax ! A [ i ] retorne atualMax Exemplo: encontrar o valor máximo de um vetor Estrutura de Dados 8 Pseudo-código Controle do fluxo de execução ! se … então … [ senão …] ! enquanto … faça … ! repita … até que … ! repita … enquanto … ! para … faça … ! Indentação substitui chaves Declaração de algoritmo Algoritmo metodo ( arg [, arg …]) Entrada: … Saída: … Chamadas a métodos var.metodo var....
View Full Document

  • Spring '12
  • Milton
  • running time, input size, busca binária, transforma objetos, algoritmo arraymax, Algoritmo prefixAverages2

{[ snackBarMessage ]}

Page1 / 11

Cap 4 - Analise de algoritmos-4spp - Análise de Algoritmos...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online