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

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 n = 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 n n = 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