Slides - Sandra de Amo

Propaganda
Operações Aritméticas
AULA 3
Análise de Algoritmos
Pós-graduação em Ciência da Computação – UFU
Profa. Sandra de Amo
Adição
•
Importante:
1)
A soma de 3 números de 1 dígito (em qualquer base b ≥ 2) tem no
máximo 2 dígitos.
log2 N + 1 = tamanho do número N na base 2
(log2 N) = número de vezes que é preciso dividir N para obter 1.
Profundidade da árvore binária completa com N nós = log2 N
2)
3)
4)
Algoritmo
Input: x, y de n bits
Output : z = x + y
tamanho de z = no máximo n+1
O(addition(x,y)) = O(n)
Não é possível fazer melhor !
Exercicio
1) Dê algoritmos com complexidade linear
para:
f(n) = n/2
g(n) = 2n
Multiplicação
x = 13
y = 11
1101 vezes 1
1101 vezes 1, desloca 1 casa à esq
1101 vezes 0, desloca 2 casas à esq
1101 vezes 1, desloca 3 casas à esq
Soma dos 4 fatores = 143 em binário
número de fatores = n
Tamanho de cada fator = no máximo 2n
Cada operação que é realizada nos fatores tem complexidade constante
Complexidade = O(n) + O(n) + ... + O(n) (n-1 vezes) = complexidade de somar
os n fatores, 2 a 2 = (n-1) O(n) = O(n2)
Exercicio 2
• Mostre que:
2.chão(x/2) = x
se x é par
= x – 1 se x é impar
Divisão
Complexidade = O(n2)
Exercício 3
a) Execute o algoritmo para x = 204, y = 134. Monte uma planilha.
b) Mostre que o algoritmo é CORRETO, isto é, o resultado produzido
é igual a x.y
c) Analise a complexidade deste algoritmo
Download