View
0
Download
0
Category
Preview:
Citation preview
Complexidade de Algoritmos
Algoritmos ÓtimosMsc. Marcelo Aires
➢ Algoritmos➢ Conceitos Básicos➢ Notação Assintótica➢ Tipos de Complexidade➢ Exemplos de algoritmos para contagem e prova de
complexidade
Relembrando
➢ Introdução➢ Algoritmos ótimos➢ Exemplos de algoritmos ótimos
Agenda
INTRODUÇÃO AOSALGORITMOS ÓTIMOS
5
➢ Um algoritmo é uma sequência de passos computacionais que transformam a entrada (algum valor ou conjunto de valores) na saída (algum valor ou conjunto de valores).
➢ O fato de um algoritmo resolver (teoricamente) um problema não significa que seja aceitável na prática.
➢ Às vezes, o algoritmo mais imediato (fácil) está longe de ser razoável em termos de eficiência.
Introdução
➢ Para medir a eficiência do algoritmo, utilizamos o custo de tempo de execução e o espaço na memória.○ O tempo é o fator mais relevante.
➢ Um algoritmo aceitável deve resolver um problema com o menor custo de tempo e espaço.
➢ Sempre utilizamos o Pior Caso (O) para medir a eficiência do algoritmo em comparação a outro.
➢ Então, se o pior caso for o melhor caso, o que podemos afirmar?
Introdução
O QUE SÃOALGORITMOS ÓTIMOS?
8
➢ Refere-se ao limite inferior g(n) de um problema P tal que a complexidade (no pior caso) para qualquer P, está limitada inferiormente, assintoticamente, pela função g(n) (Ω(g)).
➢ Ou seja: Um algoritmo é ótimo quando a sua complexidade iguala a um limite inferior obtido.
➢ Ou seja: O = Ω
Algoritmo Ótimo
➢ Podem existir vários algoritmos ótimos para resolver o mesmo problema.
➢ Caso um novo algoritmo (X) tenha obtido um limite inferior menor que o de outro algoritmo (Y) para um mesmo problema P, o Y passa a não ser chamado de ótimo (se antes de conhecer o novo algoritmo).
Algoritmo Ótimo
➢ Soma de matrizes
Exemplo de Algoritmo Ótimo
➢ Impressão de um vetor
Exemplo de Algoritmo Ótimo
➢ Inversão de um vetor
Exemplo de Algoritmo Ótimo
➢ CORMEN, T. H.; STEIN, C.; LEISERSON, C.; RIVEST, R. L. Algoritmos: teoria e prática. Rio de Janeiro: Campus, 2002.
➢ TOSCANI, Lais Vieira; Veloso, Paulo A.S.; Complexidade de Algoritmos: Série Livros Didáticos Informática UFGS – Vol. 13, Porto Alegre – RS: Bookman Editora, 2009.
Referências
➢ Revise a partir dos exemplos anteriores:○ faça a contagem de instruções;○ encontre o tipo de complexidade;○ existe outro algoritmo ótimo para o mesmo problema?
➢ Dê mais 3 exemplos de algoritmos ótimos para problemas diferentes (apresente o problema e o código).
➢ Defina com suas palavras o que é um algoritmo ótimo (resumo do que você entendeu).
Exercício
Recommended