Você está na página 1de 8

ATPS Anlise e

Complexidade de Algoritmos
Cincia da Computao
1 Sem 2014.
Professor: Giselle Pires

ATPS
Etapa 1
Medidas
de
complexidade,
anlise
assinttica de limites de complexidade.

Adriano da Silva Soares


RA n 1158387627
Diego Alexandrino de Souza
RA n 1106277135
Sandro Rodolfo de Moraes
RA n 2559457632

Etapa 2
Anlise de desempenho de alguns
algoritmos clssicos de busca, ordenao e
sobre grafos.

Andre Luiz da Silva


RA n 1105280343

So Jos dos Campos, 19 de Maro de 2014.

1
.

2 ATPS Anlise e Complexidade de Algoritmos

SUMRIO

ETAPA 1

...............................................................

ETAPA 2

...............................................................

BIBLIOGRAFIA

...............................................................

ATPS - Anlise e Complexidade de Algoritmos

3 ATPS Anlise e Complexidade de Algoritmos

ETAPA 1
PASSO 2 Definir, de acordo com o texto lido no passo 1, as medidas de
complexidade micron (), mega () e Theta ().
1 Omicron
Utilizado para determinar o pior caso.
Baseia-se no maior tempo de execuo sobre todas as entradas de N.
2 Omega
Utilizado para determinar o melhor caso.
E o menor tempo de execuo em uma entrada N.
3 Theta
Utilizado para determinar o mdio caso.
Utiliza se a mdia dos tempos de execuo de todas as entradas de N.

PASSO 3 Usar as medidas de complexidade descritas acima e fazer as


seguintes atividades:
1 - Comparar uma funo linear f(n) com uma funo quadrtica g(n) e mostrar que f(n)
micron (g(n)), determinando constantes n0 natural e c real positivo;
R: f(n)=o(g(n))para toda constante c>0 ocorre que f(n)< c g(n)
2 - Comparar uma funo exponencial f(n) com uma funo cbica g(n) e mostrar que f(n)
mega (g(n)), determinando constantes n0 natural e d real positivo;
R: Para todo n N existe uma constante k>0 tal que f(n) k g(n)
3 - Comparar duas funes quadrticas f(n) e g(n) e mostrar que f(n) Theta (g(n)),
determinando constantes c, d reais positivos e n0 natural.
R: Para todo n N f(n) = O (g(n)).

ATPS - Anlise e Complexidade de Algoritmos

4 ATPS Anlise e Complexidade de Algoritmos

PASSO 4 Criar um algoritmo que tenha pelo menos dois elementos que
sejam comuns a maioria dos algoritmos como, por exemplo, atribuies
simples, declaraes, laos, laos aninhados, If-Then-Else. Entregar ao
professor o Relatrio 1 com todos os passos descritos nessa etapa.
Programa: Indice_Par_ou_impar
Var
a,b : Conjunto [1...10] de real
i,r: Inteiro
Inicio
Para i de 1 at 10 passo 1 faa
Leia a[i]
Fim_para
para I de 1 ate 10 passo 1 faa
r I 2 * (i div 2)
Se (R=0) ento
B[i] a[i] * 5
Seno
B[i] a[i] +5
Fim_se
Fim_para
Para i de 1 ate 10 passo 1 faa
Escreva b[i]
Fim_para
Fim

ETAPA 2
PASSO 1 - Citar as vantagens e desvantagens dos algoritmos de ordenao
por seleo e de ordenao por insero. Explicar o funcionamento de cada
um deles.
Ordenao
Seleo

Vantagem
Custo linear no tamanho da entrada para o
nmero de movimentos de registros.
o algoritmo a ser utilizado para arquivos
com registros muito grandes.
muito interessante para arquivos pequenos.

Desvantagem
O fato de o arquivo j estar
ordenado no ajuda em
nada, pois o custo continua
quadrtico.
O algoritmo no estvel.

Insero

Insero uma tima opo para arquivos de


tamanho moderado.
Sua implementao simples e requer uma
quantidade de cdigo pequena.

O tempo de execuo do
algoritmo sensvel
ordem inicial do arquivo.
O mtodo no estvel.

ATPS - Anlise e Complexidade de Algoritmos

5 ATPS Anlise e Complexidade de Algoritmos

PASSO 2 - Criar um algoritmo de ordenao por insero e um de


ordenao por seleo para ordenar um vetor de tamanho n.
Programa: Programa ordenao por insero
Var
i,r: Inteiro
vetor,N : Conjunto [1...N ] de inteiro
Inicio
I0
enquanto (i < n-1)
ji+1
enquanto (j<n)
se(vetor[i] > vetor[j]
auxvetor[i]
vetor [i]vetor[j]
vetor [j] aux
fim-se
fim-enquanto
j++
fim-enquanto
i++
Fim
Programa: Programa ordenao por Seleo
Var
i,j,min,x:inteiro
nicio
para i=0 de i ate n-2 passo n faa
mini
para j=i+1 de j ate n passo j
se (a[j] < a[min])
minj
fim-se
fim-para
xa[min];
a[min]-a[i]
a[i]x
fim-para
Fim

ATPS - Anlise e Complexidade de Algoritmos

6 ATPS Anlise e Complexidade de Algoritmos

PASSO 3 - Explicar o funcionamento, passo a passo, dos algoritmos criados


no passo 2 dessa etapa.
1 - Algoritmo de ordenao por insero
Esse algoritmo de ordenao procura o menor valor de um vetor de 2 nmeros e joga para
uma vetor auxiliar e vai para a prxima posio do vetor, compara o valor do valores desse
vetor at a ltima posio quando chega nele, o vetor est todo organizado.
2 - Algoritmo de ordenao por seleo
Esse algoritmo varre todo o vetor procurando o menor valor e joga ela e, um vetor auxiliar e
pega o valor da ltima posio e joga para a ltima posio vazia, depois comea a comparar
da as outras posio at a ltima posio nisso fica o vetor todo organizado.

PASSO 4 - Escrever a complexidade, linha a linha, de cada um dos


algoritmos criados no passo 2 dessa etapa. Entregar ao professor o
Relatrio 2 com todos os passos descritos nessa etapa.
1 - Algoritmo de ordenao por insero
1- O(1)
2- O(1)
3- O(1)
4- O(n)2
5- O(1)
6- O(n)2
7- O(1)
8- O(1)
9- O(1)
10- O(1)
11- O(1)
12- O(1)
Verificamos que a complexidade deste algoritmo Omcron quadrtica (O(n)), por ter um
lao de repetio aninhada nas linhas 4 e 6.

ATPS - Anlise e Complexidade de Algoritmos

7 ATPS Anlise e Complexidade de Algoritmos

2 - Algoritmo de ordenao por Seleo


123456789-

O(1)
O(n)2
O(1)
O(n)2
O(1)
O(1)
O(1)
O(1)
O(1)

Verificamos que a complexidade deste algoritmo Omcron quadrtica (O(n)), por ter um
lao de repetio aninhada nas linhas 2 e 4.

ATPS - Anlise e Complexidade de Algoritmos

8 ATPS Anlise e Complexidade de Algoritmos

BIBLIOGRAFIA
Algortmos: Lgica para Desenvolvimento de Programao de Computadores
21 Edio Editora tica Pg. 105
Jos Augusto N. S. Manzano

ATPS - Anlise e Complexidade de Algoritmos

Você também pode gostar