Você está na página 1de 22

3/10/12

Anlise de Algoritmos
CliqueJoo Emanoel A. Gomes Prof. para editar o estilo do subttulo mestre

Email: joaoemanoelamb@gmail.com Twitter: @joaoemanoelag FATEC 2012.1

3/10/12

EMENTA

FUNDAMENTOS MATEMTICOS DA ANLISE DE ALGORITMOS; ALGORTMICAS;

TCNICAS

ALGORTMOS

EFICIENTES PARA BUSCA, ORDENAO, RECONHECIMENTO DE PADRES EM PALAVRAS, OPERAES SOBRE GRAFOS, OPERAES ALGBRICAS SOBRE MATRIZES E POLINMIOS, ETC; DE COMPLEXIDADE COMPUTACIONAL: CLASSES P E NP,

FUNDAMENTOS

Algoritmo

3/10/12

Um Algoritmo (por exemplo, um programa) um procedimento, constitudo de um conjunto de regras no ambguas, as quais especificam, para cada entrada, uma sequncia finita de operaes, terminando com uma sada correspondente.

Algoritmo Textual Informal

3/10/12

Modo de preparo:

Quo cremoso?!?

Bata a margarina, as gemas e o acar at Quanto tempo?!? ficar cremoso o leite, o coco e a farinha e continue De uma vez s?!? batendo o fermentoQuanto tempo?!? e, por ltimo, as claras em neve

Junte

Acrescente Unte

uma forma com manteiga e leve ao forno para assar

3/10/12

Algoritmo Grfico Semi-formal


Troca

de pneu (Fluxograma)

Abre porta-malas

Sim
Pega tringulo

No

Acessrios OK? Fecha porta-malas

3/10/12

Algoritmo Textual Formal

Troca de pneu
abre(porta_malas) Se acessorio_ok = FALSO Ento fecha(porta_malas) espera_carona() Seno pega_triangulo()

3/10/12

Algoritmo: Problemas Complexos


Problema
Seja

da Torre de Hani

a seguinte situao:

deve-se mover todos os discos do primeiro eixo para o terceiro mantendo-se a ordem original em cada movimento, pode-se mover apenas um disco um disco nunca poder ser sobreposto por outro maior

3/10/12

Algoritmo: Problemas Complexos


Passo

1:

mova disco menor para terceiro eixo

3/10/12

Algoritmo: Problemas Complexos


Passo

2:

mova disco mdio para segundo eixo

3/10/12

Algoritmo: Problemas Complexos


Passo

3:

mova disco menor para segundo eixo

3/10/12

Algoritmo: Problemas Complexos


Passo

4:

mova disco maior para terceiro eixo

3/10/12

Algoritmo: Problemas Complexos


Passo

5:

mova disco menor para primeiro eixo

3/10/12

Algoritmo: Problemas Complexos


Passo

6:

mova disco mdio para terceiro eixo

3/10/12

Algoritmo: Problemas Complexos


Passo

7:

mova disco menor para terceiro eixo

3/10/12

Algoritmo: Problemas Complexos


Seqncia

de passos completa:

Passo 1: mova disco menor para terceiro eixo Passo 2: mova disco mdio para segundo eixo Passo 3: mova disco menor para segundo eixo Passo 4: mova disco maior para terceiro eixo Passo 5: mova disco menor para primeiro eixo Passo 6: mova disco mdio para terceiro eixo Passo 7: mova disco menor para terceiro eixo

3/10/12

COMPLEXIDADE DE ALGORITMOS
Definio:

A Complexidade de um Algoritmo consiste na quantidade de trabalho necessria para a sua execuo, expressa em funo das operaes fundamentais, as quais variam de acordo com o algoritmo, e em funo do volume de dados. fato de um algoritmo solucionar um problema suficiente para o mesmo ser aceitvel na prtica?!

3/10/12

COMPLEXIDADE DE ALGORITMOS
Um

algoritmo serve para resolver um determinado problema, e todos os problemas tm sempre uma entrada de dados tamanho dessa entrada (N) tem geralmente efeito direto no tempo de resposta de um algoritmo do problema a ser resolvido, j existem algoritmos prontos ou que podem ser adaptados

Dependendo

problema : qual algoritmo escolher?

3/10/12

Objetivos
Porque analisar a complexidade de algoritmos?
A

preocupao com a complexidade de algoritmos fundamental para projetar algoritmos eficientes. desenvolver um algoritmo e depois analisar sua complexidade para verificar sua eficincia. de ter a preocupao de projetar algoritmos eficientes desde a sua concepo.

Podemos

Importncia

3/10/12

Anlise de Algoritmos
Exemplos

programa:
Funciona Existe O

de critrios para se julgar um

Realiza o que se espera? conforme as especificaes?

documentao explicando como us-lo e como ele trabalha? cdigo est legvel?

Os

critrios acima so importantssimos no processo de desenvolvimento de software, principalmente em grandes sistemas.

3/10/12

Formas de Avaliao

Podemos

definir hoje!?

PRXIMAS

AULAS...

3/10/12

O que veremos em seguida!?


Tipos

complexidade de algoritmos :
Espacial Temporal

Complexidade Complexidade

Perspectivas Melhor Caso Pior

para anlise de complexidade:

Caso

Mdio

Caso

3/10/12

Anlise de Algoritmos
CliqueJoo Emanoel A. Gomes Prof. para editar o estilo do subttulo mestre

Email: joaoemanoelamb@gmail.com Twitter: @joaoemanoelag FATEC 2012.1