A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Introdução a Análise de Complexidade de Algoritmos Prof. Alexandre Parra

Apresentações semelhantes


Apresentação em tema: "Introdução a Análise de Complexidade de Algoritmos Prof. Alexandre Parra"— Transcrição da apresentação:

1 Introdução a Análise de Complexidade de Algoritmos Prof. Alexandre Parra parrasilva@gmail.com

2 Roteiro Introdução à Análise de Complexidade de Algoritmos

3 Roteiro Introdução à Análise de Complexidade de Algoritmos

4 Considerações sobre Análise de Complexidade O programador deve estar ciente dos vários aspectos que influenciam a eficiência. Objetivo: fazer uma opção mais correta quanto ao método de pesquisa e/ou ordenação a utilizar em um determinado cenário. Aspectos mais relevantes: O tempo que será gasto pelo programador para codificar determinado programa. O tempo necessário para executar o programa. Espaço de memória necessário para executar o programa.

5 Aspecto: Codificação Se o algoritmo de pesquisa ou ordenação for executado poucas vezes e existirem tempo e espaço na máquina suficientes para executá-lo Não desperdiçar dias programando melhores métodos. Ressalva: O tempo de programação nunca deve ser uma desculpa válida para usar um algoritmo inadequado. Programador precisa conhecer os vários métodos de pesquisa e ordenação para uma escolha bem sucedida.

6 Aspectos: Tempo e Espaço Na maioria dos programas, o programador deverá otimizar freqüentemente um desses aspectos à custa do outro. Interessado na variação do tempo imposta pela mudança no tamanho do repositório de dados. A eficiência de tempo é calculada pelo número de operações críticas efetuadas. Operações críticas: (1) comparação entre chaves, (2) troca de dois registros, (3) ou movimentação de ponteiros para registros.

7 Tempo de Execução de Algoritmos (1/2) Em alguns casos pode-se calcular exatamente o tempo de execução de um algoritmo. Para repositório de dados volumosos, constantes multiplicativas e termos de mais baixa ordem podem ser desconsiderados. Exemplo: 0.01n 2 + 10n = O(n 2 ), onde n é o número de registros no arquivo a ser ordenado.

8 Tempo de Execução de Algoritmos (2/2) na = 0.01n 2 b = 10nCálculo a+b 101100101 5025500525 100 1.0001.100 5002.5005.0007.500 1.00010.000 20.000 5.000250.00050.000300.000 10.0001.000.000100.0001.100.000 50.00025.000.000500.00025.500.000 100.000100.000.0001.000.000101.000.000 500.0002.500.000.0005.000.0002.505.000.000 1.000.00010.000.000.00010.000.00010.010.000.000 0.01n 2 + 10n = O(n 2 )

9 Métodos de cálculo de complexidade (1/2) Formal (conceito de Ordem) Através deste conceito poderemos comparar vários métodos de pesquisa e ordenação quanto a eficiência. Métodos de pesquisa têm exigências de tempo que variam de O(log 2 n) a O(n). Métodos de ordenação têm exigências de tempo que variam de O(nlog 2 n) a O(n 2 ).

10 Métodos de cálculo de complexidade (2/2) Empírico Um segundo método é executar um programa de pesquisa e ordenação e avaliar sua eficiência (quer por unidade de tempo absoluto ou pelo nº de operações executadas). É necessário fazer o teste em vários exemplos de arquivo. Mesmo havendo uma estatística, a aplicação da pesquisa ou ordenação num arquivo específico pode não apresentar resultados que sigam o padrão.


Carregar ppt "Introdução a Análise de Complexidade de Algoritmos Prof. Alexandre Parra"

Apresentações semelhantes


Anúncios Google