de Algoritmos Complexidade“timos-1.pdf · Um algoritmo é uma sequência de passos computacionais...
Transcript of de Algoritmos Complexidade“timos-1.pdf · Um algoritmo é uma sequência de passos computacionais...
![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](https://reader034.fdocumentos.tips/reader034/viewer/2022050312/5f74f21a16e7e9696c34b108/html5/thumbnails/1.jpg)
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](https://reader034.fdocumentos.tips/reader034/viewer/2022050312/5f74f21a16e7e9696c34b108/html5/thumbnails/2.jpg)
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](https://reader034.fdocumentos.tips/reader034/viewer/2022050312/5f74f21a16e7e9696c34b108/html5/thumbnails/3.jpg)
➢ 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](https://reader034.fdocumentos.tips/reader034/viewer/2022050312/5f74f21a16e7e9696c34b108/html5/thumbnails/4.jpg)
➢ 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](https://reader034.fdocumentos.tips/reader034/viewer/2022050312/5f74f21a16e7e9696c34b108/html5/thumbnails/5.jpg)
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](https://reader034.fdocumentos.tips/reader034/viewer/2022050312/5f74f21a16e7e9696c34b108/html5/thumbnails/6.jpg)
➢ 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](https://reader034.fdocumentos.tips/reader034/viewer/2022050312/5f74f21a16e7e9696c34b108/html5/thumbnails/7.jpg)
➢ 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](https://reader034.fdocumentos.tips/reader034/viewer/2022050312/5f74f21a16e7e9696c34b108/html5/thumbnails/8.jpg)
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](https://reader034.fdocumentos.tips/reader034/viewer/2022050312/5f74f21a16e7e9696c34b108/html5/thumbnails/9.jpg)
➢ 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](https://reader034.fdocumentos.tips/reader034/viewer/2022050312/5f74f21a16e7e9696c34b108/html5/thumbnails/10.jpg)
➢ 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](https://reader034.fdocumentos.tips/reader034/viewer/2022050312/5f74f21a16e7e9696c34b108/html5/thumbnails/11.jpg)
➢ 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](https://reader034.fdocumentos.tips/reader034/viewer/2022050312/5f74f21a16e7e9696c34b108/html5/thumbnails/12.jpg)
➢ 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](https://reader034.fdocumentos.tips/reader034/viewer/2022050312/5f74f21a16e7e9696c34b108/html5/thumbnails/13.jpg)
➢ 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](https://reader034.fdocumentos.tips/reader034/viewer/2022050312/5f74f21a16e7e9696c34b108/html5/thumbnails/14.jpg)
➢ 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](https://reader034.fdocumentos.tips/reader034/viewer/2022050312/5f74f21a16e7e9696c34b108/html5/thumbnails/15.jpg)
➢ 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