Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouJoana Custodio Alterado mais de 10 anos atrás
1
Exercício Exercício. Considere um algoritmo sequencial que busca um elemento em uma lista não ordenada a) Qual é a complexidade de tempo deste algoritmo ? b) Assuma que o elemento buscado esta na lista e que todos os elementos tem a mesma probabilidade de serem buscados. Qual a complexidade de caso médio do algoritmo ?
2
Exercício - Solução a) No pior caso todos os elementos são testados. Portanto, a complexidade é linear. b) A probabilidade de testar o i-ésimo elemento é 1/n e i comparaçoes sao necessárias neste caso. Logo, a complexidade de caso médio é 1/ n ( … + n) = (n-1)/2
3
Exercício Exercício. Considere um algoritmo que recebe um número real x como entrada e devolve a0 + a1x + … + an-1xn-1 a) Desenvolva um algoritmo para resolver este problema que execute em tempo quadrático. Faça a análise do algoritmo b) Desenvolva um algoritmo para resolver este problema que execute em tempo linear. Faça a análise do algoritmo
4
Exercício - Solução a) sum = a0 Para i= 0 até n-1 faça aux ai Para j:=1 até i aux x . aux Fim Para sum <- sum + aux Devolva sum Análise Número de operações elementares é igual a … + n-1 = n(n-1)/2 = O(n2)
5
Exercício - Solução b) sum = a0 pot = 1 Para i= 1 até n-1 faça pot x.pot sum sum + ai.pot Fim Para Devolva sum Análise A cada loop são realizadas O(1) operações elementares. Logo, o tempo é linear
6
Exercício Descreva um algoritmo com complexidade O(n log n) com a seguinte especificação Entrada: Uma lista de n números reais Sáida: SIM se existem números repetidos na lista e NÃO caso contrário
7
O loop Para requer tempo linear
Exercício - Solução Ordene a lista lista L Para i=1 até |L|-1 Se L[i]=L[i+1] Devolva SIM Fim Para Devolva NÃO ANÁLISE A ordenação da lista L requer O (n log n) utilizando o Mergesort ou o Heapsort O loop Para requer tempo linear
8
Exercício Descreva um algoritmo com complexidade O(n log n) com a seguinte especificação Entrada: conjunto S de n números reais e um número real x Sáida: SIM se existem dois elementos em S com soma x e NÃO caso contrário
9
Enquanto a lista L não esta vazia faça
Exercício - Solução L <- conjunto S em ordem crescente Enquanto a lista L não esta vazia faça Some o menor e o maior elemento de L Se a soma é x Devolva SIM Se a soma é maior que x Retire o maior elemento de L Se a soma é menor que x Retire o menor elemento de L Fim Enquanto Devolva NÃO
10
Enquanto a lista L não esta vazia faça
Exercício - Solução L <- conjunto S em ordem crescente Enquanto a lista L não esta vazia faça Some o menor e o maior elemento de L Se a soma é x Devolva SIM Se a soma é maior que x Retire o maior elemento de L Se a soma é menor que x Retire o menor elemento de L Fim Enquanto Devolva NÃO ANÁLISE A ordenação do conjunto S requer O (n log n) utilizando o Mergesort ou o heapsort O loop enquanto requer tempo linear
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.