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