de algoritmos complexidade“timos-1.pdf · um algoritmo é uma sequência de passos computacionais...

15
Complexidade de Algoritmos

Upload: others

Post on 26-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: de Algoritmos Complexidade“timos-1.pdf · Um algoritmo é uma sequência de passos computacionais que transformam a entrada (algum valor ou conjunto de valores) na saída (algum

Complexidade de Algoritmos

Page 2: de Algoritmos Complexidade“timos-1.pdf · Um algoritmo é uma sequência de passos computacionais que transformam a entrada (algum valor ou conjunto de valores) na saída (algum

Algoritmos ÓtimosMsc. Marcelo Aires

Page 3: de Algoritmos Complexidade“timos-1.pdf · Um algoritmo é uma sequência de passos computacionais que transformam a entrada (algum valor ou conjunto de valores) na saída (algum

➢ Algoritmos➢ Conceitos Básicos➢ Notação Assintótica➢ Tipos de Complexidade➢ Exemplos de algoritmos para contagem e prova de

complexidade

Relembrando

Page 4: de Algoritmos Complexidade“timos-1.pdf · Um algoritmo é uma sequência de passos computacionais que transformam a entrada (algum valor ou conjunto de valores) na saída (algum

➢ Introdução➢ Algoritmos ótimos➢ Exemplos de algoritmos ótimos

Agenda

Page 5: de Algoritmos Complexidade“timos-1.pdf · Um algoritmo é uma sequência de passos computacionais que transformam a entrada (algum valor ou conjunto de valores) na saída (algum

INTRODUÇÃO AOSALGORITMOS ÓTIMOS

5

Page 6: de Algoritmos Complexidade“timos-1.pdf · Um algoritmo é uma sequência de passos computacionais que transformam a entrada (algum valor ou conjunto de valores) na saída (algum

➢ 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

Page 7: de Algoritmos Complexidade“timos-1.pdf · Um algoritmo é uma sequência de passos computacionais que transformam a entrada (algum valor ou conjunto de valores) na saída (algum

➢ 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

Page 8: de Algoritmos Complexidade“timos-1.pdf · Um algoritmo é uma sequência de passos computacionais que transformam a entrada (algum valor ou conjunto de valores) na saída (algum

O QUE SÃOALGORITMOS ÓTIMOS?

8

Page 9: de Algoritmos Complexidade“timos-1.pdf · Um algoritmo é uma sequência de passos computacionais que transformam a entrada (algum valor ou conjunto de valores) na saída (algum

➢ 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

Page 10: de Algoritmos Complexidade“timos-1.pdf · Um algoritmo é uma sequência de passos computacionais que transformam a entrada (algum valor ou conjunto de valores) na saída (algum

➢ 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

Page 11: de Algoritmos Complexidade“timos-1.pdf · Um algoritmo é uma sequência de passos computacionais que transformam a entrada (algum valor ou conjunto de valores) na saída (algum

➢ Soma de matrizes

Exemplo de Algoritmo Ótimo

Page 12: de Algoritmos Complexidade“timos-1.pdf · Um algoritmo é uma sequência de passos computacionais que transformam a entrada (algum valor ou conjunto de valores) na saída (algum

➢ Impressão de um vetor

Exemplo de Algoritmo Ótimo

Page 13: de Algoritmos Complexidade“timos-1.pdf · Um algoritmo é uma sequência de passos computacionais que transformam a entrada (algum valor ou conjunto de valores) na saída (algum

➢ Inversão de um vetor

Exemplo de Algoritmo Ótimo

Page 14: de Algoritmos Complexidade“timos-1.pdf · Um algoritmo é uma sequência de passos computacionais que transformam a entrada (algum valor ou conjunto de valores) na saída (algum

➢ 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

Page 15: de Algoritmos Complexidade“timos-1.pdf · Um algoritmo é uma sequência de passos computacionais que transformam a entrada (algum valor ou conjunto de valores) na saída (algum

➢ 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