Você está na página 1de 2

WILLIAM ROSA DE SOUZA

Resumo do Captulo 1 - Introduo


Algoritmos: So sequncia de aes executveis para a obteno de uma
soluo para um determinado tipo de problema, a definio de cada passo de
um algoritmo deve ser precisamente definida. As aes devem ser definidas
rigorosamente e sem ambiguidades. Tem como caractersticas a Finitude: um
algoritmo deve sempre terminar aps um nmero finito de passos, a entradas:
um algoritmo deve ter zero ou mais entradas, isto quantidades que so
fornecidas antes do algoritmo iniciar, sadas: um algoritmo deve ter uma ou
mais sadas, isto quantidades que tem uma relao especfica com as
entradas, a efetividade: um algoritmo deve ser efetivo. Isto significa que todas
as operaes devem ser suficientemente bsicas de modo que possam ser em
princpio executadas com preciso em um tempo finito por um humano usando
papel e lpis. So Representados atravs da Linguagem Natural, Fluxogramas
e Pseudocdigo
Estruturas de dados: Modo particular de armazenar/ organizar dados para
facilitar acesso e modificaes, s tem significado quando associada a um
algoritmo.
Programas: Representam uma classe especial de algoritmos capazes de
serem seguidos por computadores
Tipos de Dados: Caracteriza o conjunto de valores a que uma constante
pertence, ou que podem ser assumidos por uma varivel ou expresso, ou que
podem ser gerados por uma funo: Tipos simples: so grupos de valores
indivisveis e; Tipos estruturados: definem uma coleo de valores simples, ou
um agregado de valores de tipos diferentes.
Tipos Abstratos de Dados (TAD): A representao do modelo matemtico por
trs do tipo abstrato dedados realizada mediante uma estrutura de dados.
Qualquer alterao na implementao do TAD fica restrita parte encapsulada,
sem causar impactos em outras partes do cdigo.
Medida do tempo de Execuo de um Programa: Comportamento
Assinttico de Funes: O custo aumenta com o aumento do n! Dominao
assinttica. Uma funo f(n) domina assintoticamente outra funo g(n) se
existem duas constantes positivas c e m tais que, para n m, temos |g(n)| c
|f(n)|
o
o
o
o

Notao O, indica o pior caso - Uma funo g(n) O(f(n)) se existem duas
constantes positivas c e m tais que g(n) c f(n), para todo n m.
Notao , indica o melhor caso - Uma funo g(n) (f(n)) se existirem duas
constantes c e m tais que g(n) c f(n), para todo n m.
Notao , indica o caso mdio - Uma funo g(n) (f(n)) se existirem
constantes c1, c2 em tais que 0 c1f(n) g(n) c2f(n), para todo n m.
Notao o, indica o pior caso - Uma funo g(n) o(f(n)) se, para qualquer
constante c > 0, ento 0 g(n) < c f(n) para todo n m.

Notao , indica o melhor caso - Uma funo g(n) (f(n)) se, para qualquer
constantec > 0, ento 0 cf(n) < g(n) para todo n m.

Classes de Comportamento Assinttico: Se f uma funo de complexidade


para um algoritmo F, ento O(f) considerada a complexidade assinttica do
algoritmo F. Comparao de Programas. Principais Classes de Problemas
Complexibilidade constante = f(n) = O(1); Complexibilidade logartmica =
f(n) = O(log n); Complexidade quadrtica = f(n) = O(n2); Complexidade
cbica = f(n) = O(n3); Complexidade exponencial = f(n) = O(2n); f(n) = O(n!)
= Complexidade linear; f(n) = O(n) = f(n) = O(n log n)
Algoritmo exponencial: Funo de complexidade O(cn), c > 1 - so
geralmente variaes de pesquisa exaustiva.
Algoritmo polinomial: Funo de complexidade O(p(n)), onde p(n) um
polinmio - So mais teis na prtica; Estuda as vrias opes de algoritmos:
aspectos, espao ocupado, tempo de execuo.
Tipos de problemas na anlise de algoritmos: Anlise de um algoritmo
particular, qual o custo? memria, tempo
Anlise de uma classe de algoritmos: Qual o algoritmo de menor custo
possvel? medida da dificuldade
Medida do Custo por meio de um Modelo Matemtico: Modelo matemtico,
considerar apenas as operaes mais significativas, algoritmos de ordenao,
consideramos o nmero de comparaes, funo de complexidade f:
Complexidade de tempo e Complexidade de espao tamanho da entrada de
dados, casos (Melhor Caso, Caso Mdio e Pior Caso), Limite Inferior: Uso de
um Orculo - Teorema e Prova
Tcnicas de Anlise de Algoritmos: Anlise do Tempo de Execuo com
procedimentos no recursivos ou procedimentos recursivos que podem ser
equao de recorrncia e anlise do Procedimento Recursivo