EstruturaII Ordenacao
3763 palavras
16 páginas
Complexidade de algoritmos eClassificação (Ordenação) de dados Créditos: Baseado no material do Prof. Alexandre Parra Carneiro
Complexidade de algoritmos
Antes de começarmos vamos falar um pouco a respeito da análise de complexidade de algoritmos
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. 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 métodos. dias
programando
melhores
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.
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 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.
pela
Tempo de Execução de Algoritmos
Em alguns casos pode-se calcular exatamente o tempo de execução de um algoritmo.
Os objetos matemáticos de que precisamos são funções que mapeiem as entradas possíveis ao tempo (ou espaço) necessário!
O aspecto mais relevante da entrada que é determinante do tempo e do espaço necessários para executar o algoritmo é o tamanho!
O tamanho ou