Mind map
Análise e Complexidade de Algoritmos
Map content
Análise e Complexidade de Algoritmos
Procedimentos computacionais
- Entradas
- Saídas
- Algoritmo correto
- Resolve o problema
- Entradas
Avaliar eficiência/desempenho
- Considerado tecnologia
- Tão importante como hardware
Computador infinitamente rápido?
- Recursos limitados
- Processamento
- memória
- Recursos limitados
Ordenação
- Inserção
- Exemplo do baralho
- loop invariante
- ao final de cada etapa uma parte da solução
- provar a corretude
- Inicialização
- verdadeira antes da primeira iteração
- manutenção
- durante a execução
- término
- Inserção
Complexidade de Algoritmos
- Tempo
- Depende da entrada
- Qtd de itens
- custo linear
- melhor caso
- melhor caminho
- já ordenado
- loop
- custo quadrático
- maior tempo de execução
- executar todos os passos
- pior caso
- custo constante
- instruções simples
- Um algoritmo é melhor se o custo de pior caso for menor
- Depende da entrada
- Comportamento
- Complexidade Assintótica
- Comportamento de acordo com o crescimento da entrada
- Tende ao infinito
- Assintoticamente mais eficiente
- um algoritmo que é assintoticamente mais eficiente será a melhor escolha para todas as entradas, exceto as muito pequenas
- Medidas de complexidade/Custo
- Melhor caso
- Menor tempo de execução sobre todas as possíveis entradas de tamanho N
- pior caso
- maior tempo de execução
- caso médio
- média dos tempos de todas as as entradas
- Melhor caso
- Descarta termos constantes
- Comportamento de acordo com o crescimento da entrada
- Tempo
Prevê recursos neccessários
Resolver problemas computacionais
Divisão e conquista
- Ordenação por intercalação
- Divide em 2 pedaços
- Classificar recursivamente
- Intercalar as 2 metades
- Classificar recursivamente
- Custo: Equação de recorrência
- 2*T(n/2) --divisão + O(n) -Merge
- Divide em 2 pedaços
- Recursividade
- Chamar a si mesmo
- Passos:
- Dividir
- Conquistar
- Combinar
- Merge
- Combinar
- Conquistar
- Dividir
- QuickSort
- Ordenação por intercalação
Estudar n. de vezes que operações são executadas
Algoritmos Gulosos
- Busca resolver problemas de otimização
- caminho mínimo/menor custo
- Técnica de construção de algoritmos
- Preocupa-se a melhor opção LOCAL viável
- Lembrar PACMAN/Come e não vomita
- Algoritmos simples e de fácil implementação
- Conjunto de candidatos
- Escolhidos
- Rejeitados
- Passo
- Escolhe qual elemento é mais viável
- Sequencia de decisões para alcançar o prob.
- Ou faz parte da decisão, ou é descartado
- Sequencia de decisões para alcançar o prob.
- Lembrar do problema do troco
- Escolhe qual elemento é mais viável
- Busca resolver problemas de otimização
Backtracking
- Busca exaustiva/completa
- Método Sistemático
- Estratégia de resolução de problemas
- Se der errado, volta e escolhe outro caminho
Medir eficiência
Algoritmos diferentes resolvem o mesmo problema com a mesma eficiência?
Complexidade computacional
- Custo = memória + tempo
- Análise
- Empírica
- Na execução
- Analisa desempenho
- custos não aparentes/alocação a memória
- computadores e linguagens
- resultado pode ser mascarado pelo hardware
- pode existir outra execução no momento
- Na execução
- Matemática
- Estudo formal
- Ideia por trás do algoritmo
- Independente de hardware
- Ignora detalhes de baixo nível (LP, hardware)
- ident. como o algoritmo se comporta c entrada
- Estudo formal
- Empírica
Images and files in the map
Information
- Description
- Concursos Públicos IFS Mind Map on Análise e Complexidade de Algoritmos, created by Izabella Rezende on 31/10/2016.
- Created by
- Izabella Rezende
- Views
- 22
- Rating