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.

Slides:



Advertisements
Apresentações semelhantes
Roberta Geneci Neves Weber Rafael Coninck Teigão
Advertisements

Complexidade de Algoritmos
Algoritmo I Aula 05 Pseudo-Linguagem.
Linguagem de Programação IX Métodos de Ordenação
Solved Exercises 1. Finding the Peak. Let A= a1,…,an be a sequence of n numbers with the following property: there is p in {1,…,n} for which (i) the.
Análise de Complexidade
Aula 10 Algoritmos de Busca
Algoritmos de Busca CONTEÚDO (1) Motivação (2) Busca Linear
Algoritmos.
Vectores (e Listas) : Pesquisa e Ordenação
17 Novembro 2006Algoritmos de Ordenação e Pesquisa Aplicação a Listas de Registos 1 Jorge Cruz DI/FCT/UNL Introdução aos Computadores e à Programação 1º
11 de Maio de 2006Listas e Ordenação1 Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação 2º Semestre 2005/2006.
Pesquisa e Ordenação de Vectores
2 de Junho de 2005Conclusão1 Pedro Barahona DI/FCT/UNL Junho 2005.
1 Conclusão DI/FCT/UNL 1º Semestre 2004/ Ciclos de Simulação A técnica usada no exemplo da queda livre pode ser utilizada para trajectórias a duas.
Engenharia de Computação.
Programação Linear Método Simplex
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Pesquisa em Memória Primária – Árvores de Busca
Medida do Tempo de Execução de um Programa
Medida do Tempo de Execução de um Programa
David Menotti Estruturas de Dados I DECOM – UFOP
Pesquisa Algoritmos de pesquisa recebem um alvo e tentam encontrá-lo dentro de um conjunto de elementos. Recuperação (ou hit): quando o algoritmo encontra.
Complexidade de Algoritmos
Introdução a Programação
Classificação (Ordenação) de dados
Métodos de Pesquisa: Seqüencial e Binária
Método de Ordenação: InsertionSort
Crescimento de Funções
Complexidade de Computação Para avaliar a qualidade de um algoritmo usamos como critério o espaço e o tempo de execução. Ao.
Marco Antonio Montebello Júnior
Informática Teórica Engenharia da Computação
List Ranking. List Ranking (1) Seja L uma lista representada por um vetor s tal que s[i] é o nó sucessor de i na lista L, para u, o último elemento da.
Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo
Aux a fim início Simulação da execução de um algoritmo que troca o conteúdo de duas variáveis recebidas e apresenta o resultado da inversão: leia a,b a.
Comparação entre os métodos de ordenação
Algoritmos Genéticos em Problemas com Restrições
Cálculo Numérico / Métodos Numéricos
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
Subset Sum Algoritmos e Estruturas de Dados – IF672
Listas, Filas e Pilhas Katia Guimarães.
Aula 3 Listas, pilhas, filas.
Árvores de Busca Katia Guimarães.
Pesquisa Sequencial e Binária
Aula 10 Algoritmos de Busca
FUNÇÃO DO 2º GRAU OU FUNÇÃO QUADRÁTICA.
Complexidade em Tempo de um Algoritmo
Tabela Hash Alunos : Gustavo Jorge Zanin nºUSP
Como analisar um algoritmo
Complexidade de Computação Katia Guimarães. Avaliando a Qualidade de um Algoritmo É preciso ter bem definido –O que é dado de entrada e –O que é esperado.
Exercícios Análise de algoritmos & Ordenação
Exercícios de Algoritmos Aproximativos
Conjuntos - 1 Conjuntos disjuntos Objectivo ° resolver eficientemente o problema da equivalência ° estrutura de dados simples (vector) ° implementação.
Analise de Algoritmos e Notação Assintótica
Algoritmos Prof.: Carlos Alberto
Exercícios Análise de algoritmos & Ordenação
ATAL – Prof. Jorge Figueiredo Ordenação AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação.
Teste.
Berilhes Borges Garcia Algoritmos Uma ferramenta para resolver um problema de computação bem- especificado (O espírito da computação) Exemplo: ordenação.
Métodos de Pesquisa: Seqüencial e Binária
INTRODUÇÃO THOBER CORADI DETOFENO, MSC. Aula 01 JOINVILLE 2015 Universidade do Estado de Santa Catarina – CCT/UDESC.
Métodos de Pesquisa: Sequencial e Binária
Ordenação (Sorting) Ordenar é dispor os elementos de um conjunto numa ordem ascendente ou descendente. Problema: Dados n números, arranjá-los em ordem.
Disciplina: Estrutura de dados e Algoritmos Docentes: MSc. Manuel Zunguze.
Teste.
Teste.
Teste.
Teste\. testes.
Transcrição da apresentação:

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 ?

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 ( 1 + 2 + … + n) = (n-1)/2

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

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 1+2+3+ … + n-1 = n(n-1)/2 = O(n2)

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

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

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

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

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

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