Divisão e Conquista: Par de Pontos mais Próximo
|
|
- Ana Luiza Castelo Azenha
- 7 Há anos
- Visualizações:
Transcrição
1 Divisão e Conquista: Par de Pontos mais Próximo Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 18 Divisão e Conquista (cont.) Problema: Dado um conjunto de pontos no plano, obter o par de pontos mais próximo. Input: P = {p 1, p 2,..., p n} com p i = (x i, y i). Output: Um par de pontos p i e p j cuja distância seja mínima. 2 / 18
2 É fácil fazer um algoritmo de complexidade Θ(n 2 ), basta calcular a distância entre cada par de pontos e escolher o par com a distância mínima. Vamos ver um algoritmo de complexidade Θ(n lg n) obtido com a técnica de divisão e conquista. 3 / 18 Aplicações Computação gráfica. Sistemas de informação geográfica. Controlo de tráfego aéreo. etc. 4 / 18
3 Alguma ideia? 5 / 18 Divisão Divide o conjunto P em dois conjuntos, Q e R, cada qual com n/2 pontos. A divisão é feita através de mediana da coordenada x. 6 / 18
4 Conquista Resolve recursivamente o problema para Q e R. Se o n. o de pontos for suficientemente pequeno (por exemplo n <= 3) calcula-se à força bruta entre cada par de pontos. 7 / 18 Combinar: a parte difícil Temos de o fazer em Θ(n) para obtermos uma complexidade total de Θ(n lg n). A distância mínima será o mínimo de três coisas: d Q, d R, d QR (distância mínima entre um ponto de Q e um ponto de R). 8 / 18
5 Combinar (cont.) Seja δ = min(d Q, d R ) Para sabermos se existe algum par de pontos p i e p j, tal que p i Q, p j R e dist(p i, p j) < δ, basta verificar os pontos que estão a uma distância máxima de δ da linha L. Chamemos a esse conjunto de pontos S. 9 / 18 Reparem que potencialmente, S poderá conter os n pontos iniciais. Ou seja, até aqui ainda não garantimos que não tenhamos de calcular as distâncias entre cada ponto de Q com cada ponto de R, o que daria Θ(n 2 ). 10 / 18
6 Não pode haver mais do que um ponto por caixa. Se houvesse, estariam do mesmo lado (ambos em Q ou ambos em R) e teriam uma distância inferior a δ = uma contradição. 11 / 18 Se s 1 e s 2 são elementos de S e dist(s 1, s 2) < δ, então s 1 e s 2 têm de estar no máximo a 11 posições um do outro na sequência S y (S ordenado por y). Porquê? Só pode haver um ponto por caixa. Logo, 12 posições ou mais em y implica a existência de pelo menos 2 linhas horizontais entre s 1 e s 2 = dist(s 1, s 2) > δ. 12 / 18
7 Não é necessário estar a ordenar S em cada chamada recursiva. Se o fizéssemos obteríamos a recorrência T (n) = 2T (n/2) + Θ(n lg n). Não dá para aplicar o Teorema Mestre. Mas pode-se provar que T (n) = Θ(n lg n lg n). O objectivo é obtermos a recorrência T (n) = 2T (n/2) + Θ(n). Ou seja, o passo Combinar tem de ser feito em Θ(n). 13 / 18 A ideia é pré-ordenar o array P pela coordenada x (obtendo o array P x) e pela coordenada y (obtendo o array P y ). Depois cada chamada recursiva recebe dois arrays de pontos (ordenados por x e por y). Closest-Pair(P, n) P x = P ordenado por x / Θ(n lg n) P y = P ordenado por y / Θ(n lg n) (p1, p2) = Closest-Pair-Rec(P x, P y, n) 14 / 18
8 Closest-Pair-Rec(P x, P y, n) if n 3 Calcula a distância entre cada par de pontos e retorna o par cuja distância é mínima. else // divide P em Q e R Constrói Q x, Q y, R x, R y / Θ(n) (q1, q2) = Closest-Pair-Rec(Q x, Q y, nq) (r1, r2) = Closest-Pair-Rec(R x, R y, nr) dq = dist(q1, q2) dr = dist(r1, r2) δ = min(dq, dr) x = coordenada x do último ponto do array Q x // linha L : x == x // S = pontos em P que estão a uma distância // máxima de δ de L. Constrói S y a partir de P y / Θ(n) 15 / 18 (continuação...) Para cada s S y, calcular a distância de s a cada um dos próximos 11 pontos em S y. Seja (s1, s2) o par que obtém a distância mínima. if dist(s1, s2) < δ return (s1, s2) elseif dq < dr return (q1, q2) else return (r1, r2) 16 / 18
9 Para uma implementação concreta ainda faltam alguns detalhes Como obter Q x, Q y, R x, R y em Θ(n)? A divisão do problema em dois subproblemas foi feita através da mediana da coordenada x. Será que funciona se houver pontos com a mesma coordenada x? É trabalho para vocês pensarem. 17 / 18 Notas adicionais Este algoritmo foi inventado em inícios dos anos 70 por Shamos e Hoey. O limite dos 11 pontos pode ser reduzido. O livro CLRS refere apenas a verificação de 7 pontos. Em 2011, José Luís Pereira (um colega vosso que estava a fazer AED-II tal e qual como vós) demonstrou que com algumas modificações ao algoritmo, basta apenas verificar 2 pontos. (os interessados podem ler 18 / 18
Divisão e Conquista. Fernando Lobo. Algoritmos e Estrutura de Dados II. É uma técnica para resolver problemas (veremos outras técnicas mais adiante).
Divisão e Conquista Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 27 Divisão e Conquista É uma técnica para resolver problemas (veremos outras técnicas mais adiante). Consiste em 3 passos: Dividir
Leia maisAnálise e Complexidade de Algoritmos
Análise e Complexidade de Algoritmos Professor Ariel da Silva Dias Algoritmos Divisão e Conquista Construção incremental Resolver o problema para um sub-conjunto dos elementos de entrada; Então, adicionar
Leia maisComparação com Divisão e Conquista
Programação Dinâmica Programação Dinâmica Fernando Lobo Algoritmos e Estrutura de Dados II Outra técnica de concepção de algoritmos, tal como Divisão e Conquista ou Estratégias Greedy. O termo Programação
Leia maisAlgoritmos de Ordenação: MergeSort
Algoritmos de Ordenação: MergeSort ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo dbeder@usp.br 10/2008 Material
Leia maisO termo Programação Dinâmica é um bocado infeliz.
Programação Dinâmica Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 18 Programação Dinâmica Outra técnica de concepção de algoritmos, tal como Divisão e Conquista ou Estratégias Greedy. O termo Programação
Leia maisDivisão e Conquista. Norton T. Roman. Apostila baseada nos trabalhos de Cid de Souza, Cândida da Silva e Delano M. Beder
Divisão e Conquista Norton T. Roman Apostila baseada nos trabalhos de Cid de Souza, Cândida da Silva e Delano M. Beder Divisão e Conquista Construção incremental Ex: Consiste em, inicialmente, resolver
Leia maisAlgoritmos de Ordenação
Algoritmos de Ordenação ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo dbeder@usp.br 10/2008 Material baseado em
Leia maisAnálise de Problemas Recursivos. Algoritmos e Estruturas de Dados Flavio Figueiredo (
Análise de Problemas Recursivos Algoritmos e Estruturas de Dados 2 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Lembrando de Recursividade Procedimento que chama a si mesmo Recursividade permite
Leia maisSolução de Recorrências
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Solução de Recorrências Algoritmos e Estruturas de Dados I Natália Batista https://sites.google.com/site/nataliacefetmg/ nataliabatista@decom.cefetmg.br
Leia maisAlgoritmos de ordenação Quicksort
Algoritmos de ordenação Quicksort Sumário Introdução Descrição do quicksort Desempenho do quicksort Pior caso Melhor caso Particionamento balanceado Versão aleatória do quicksort Análise do quicksort Pior
Leia maisDivisão e conquista. Há divisão quando o algoritmo tem pelo menos 2 chamadas recursivas no corpo
Divisão e conquista Divisão: resolver recursivamente problemas mais pequenos (até caso base) Conquista: solução do problema original é formada com as soluções dos subproblemas á divisão quando o algoritmo
Leia maisAnálise de Complexidade para algoritmos iterativos e recursivos
Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa Análise de Complexidade para algoritmos iterativos e recursivos Algoritmos iterativos - complexidade expressa através de somatórios. Algoritmos
Leia maisSubsequência comum mais longa Em inglês, Longest Common Subsequence (LCS)
Programação Dinâmica Subsequência comum mais longa Em inglês, Longest Common Subsequence (LCS) Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 23 Longest Common Subsequence (LCS) Dadas duas sequências,
Leia maisMergesort. Aula 04. Algoritmo Mergesort. Divisão e Conquista. Divisão e Conquista- MergeSort
Mergesort Aula 0 Divisão e Conquista- MergeSort Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Mergesort é um algoritmo de ordenação recursivo Ele recursivamente ordena as duas
Leia maisFernando Lobo. Algoritmos e Estrutura de Dados. Outra técnica de concepção de algoritmos, tal como Divisão e Conquista.
Programação Dinâmica Fernando Lobo Algoritmos e Estrutura de Dados 1 / 56 Programação Dinâmica Outra técnica de concepção de algoritmos, tal como Divisão e Conquista. O termo Programação Dinâmica é um
Leia maisAlgoritmos de Ordenação: QuickSort
Algoritmos de Ordenação: QuickSort ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo dbeder@usp.br 10/2008 Material
Leia maisDivisão e conquista. Eficiência de divisão e conquista
Divisão e conquista Divisão: resolver recursivamente problemas mais pequenos (até caso base) Conquista: solução do problema original é formada com as soluções dos subproblemas á divisão quando o algoritmo
Leia maisAlgoritimos e Estruturas de Dados III CIC210
Algoritimos e Estruturas de Dados III CIC210 Divisão e Conquista Haroldo Gambini Santos Concurso Universidade Federal de Ouro Preto - UFOP 3 de setembro de 2009 Haroldo Gambini Santos Divisão e Conquista
Leia maisEstruturas de Dados 2
Estruturas de Dados 2 Técnicas de Projeto de Algoritmos Dividir e Conquistar IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/83 Projeto de Algoritmos por Divisão
Leia maisProjeto e Análise de Algoritmos Aula 4: Dividir para Conquistar ou Divisão e Conquista ( )
Projeto e Análise de Algoritmos Aula 4: Dividir para Conquistar ou Divisão e Conquista (2.1-2.2) DECOM/UFOP 2013/1 5º. Período Anderson Almeida Ferreira Adaptado do material desenvolvido por Andréa Iabrudi
Leia maisQuick Sort. Considerações Sobre Algoritmos de Ordenação. Estagiário PAE: Jesimar da S. Arantes Professor: ClaudioQuick F. M.
Quick Sort Considerações Sobre Algoritmos de Ordenação Estagiário PAE: Jesimar da S. Arantes Professor: Claudio F. M. Toledo 27 de Setembro de 2017 Estagiário PAE: Jesimar da S. Arantes Professor: ClaudioQuick
Leia maisOrdenação: QuickSort. Prof. Túlio Toffolo BCC202 Aula 15 Algoritmos e Estruturas de Dados I
Ordenação: QuickSort Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 15 Algoritmos e Estruturas de Dados I QuickSort Proposto por Hoare em 1960 e publicado em 1962. É o algoritmo de ordenação
Leia maisEstruturas de dados para conjuntos disjuntos. Estruturas de Dados para Conjuntos Disjuntos. Estruturas de dados para conjuntos disjuntos
Estruturas de dados para conjuntos disjuntos Estruturas de Dados para Conjuntos Disjuntos Fernando Lobo Algoritmos e Estrutura de Dados II Também conhecido por UNION-FIND. Objectivo: Manter uma colecção
Leia maisAnálise de algoritmos
Análise de algoritmos Recorrências Conteúdo Introdução O método mestre Referências Introdução O tempo de execução de um algoritmo recursivo pode frequentemente ser descrito por uma equação de recorrência.
Leia maisEstruturas de Dados para Conjuntos Disjuntos. Estruturas de dados para conjuntos disjuntos
Estruturas de Dados para Conjuntos Disjuntos Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 32 Estruturas de dados para conjuntos disjuntos Também conhecido por UNION-FIND. Objectivo: Manter uma
Leia maisDivisão-e-Conquista ( ) CAL ( ) MIEIC/FEUP. ./rr (1) Técnicas de Concepção de Algoritmos
1 Técnicas de Concepção de Algoritmos (1ª parte): divisão e conquista R. Rossetti, A.P. Rocha, A. Pereira, P.B. Silva, T. Fernandes CAL, MIEIC, FEUP Fevereiro de 2011 2 Divisão e Conquista (divide and
Leia maisEstruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches
CT-234 Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural Carlos Alberto Alonso Sanches CT-234 2) Algoritmos recursivos Indução matemática, recursão, recorrências Indução matemática Uma
Leia maisINE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/14 3 - INDUÇÃO E RECURSÃO 3.1) Indução Matemática 3.2)
Leia maisEstruturas de Dados 2
Estruturas de Dados 2 Recorrências IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/31 Recorrências Análise da Eficiência de Algoritmos: Velocidade de Execução; Análise
Leia maisAula 06: Análise matemática de algoritmos recursivos
Aula 06: Análise matemática de algoritmos recursivos David Déharbe Programa de Pós-graduação em Sistemas e Computação Universidade Federal do Rio Grande do Norte Centro de Ciências Exatas e da Terra Departamento
Leia maisBCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 13: Ordenação: MergeSort Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes Email: reifortes@iceb.ufop.br
Leia mais5. Invólucros Convexos no Plano (cont )
5. Invólucros Convexos no Plano (cont ) António Leslie Bajuelos Departamento de Matemática Universidade de Aveiro Mestrado em Matemática e Aplicações Algoritmo Quickhull Foi proposto independentemente
Leia maisJorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos divisão. divisão. combina. combina. Jorge Figueiredo, DSC/UFCG
Agena Análise e Técnicas e Algoritmos Conceitos Básicos Template Genérico Exemplos Jorge Figueireo Divisão e Conquista Motivação Pegar um problema e e entraa grane. Quebrar a entraa em peaços menores (DIVISÃO.
Leia mais07 Ordenação em Memória Interna (parte 2) quicksort SCC201/501 - Introdução à Ciência de Computação II
07 Ordenação em Memória Interna (parte 2) quicksort SCC201/501 - Introdução à Ciência de Computação II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP
Leia maisAnálise e Síntese de Algoritmos
Análise e Síntese de Algoritmos Caminhos Mais Curtos para Todos os Pares CLRS, Cap. 25 Contexto Algoritmos Elementares em Grafos (CLR, Cap. 22) BFS & DFS Ordenação Topológica & SCCs Árvores Abrangentes
Leia maisAlgoritmos Greedy. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Algoritmos Greedy 2014/ / 40
Algoritmos Greedy Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Algoritmos Greedy 2014/2015 1 / 40 Algoritmos Greedy Vamos falar de algoritmos greedy. Em português são conhecidos como: Algoritmos
Leia maisAlgoritmos e Estrutura de Dados. Aula 04 Recorrência Prof. Tiago A. E. Ferreira
Algoritmos e Estrutura de Dados Aula 04 Recorrência Prof. Tiago A. E. Ferreira Esta Aula... Nesta aula veremos três métodos para resolver recorrência: Método da substituição É suposto um limite hipotético
Leia maisBusca Binária. Aula 05. Busca em um vetor ordenado. Análise do Busca Binária. Equações com Recorrência
Busca Binária Aula 05 Equações com Recorrência Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Idéia: Divisão e Conquista Busca_Binária(A[l...r],k) 1:if r < lthen 2: index = 1
Leia maisAlgoritmos e Estrutura de Dados. Algoritmos Prof. Tiago A. E. Ferreira
Algoritmos e Estrutura de Dados Aula 3 Conceitos Básicos de Algoritmos Prof. Tiago A. E. Ferreira Definição de Algoritmo Informalmente... Um Algoritmo é qualquer procedimento computacional bem definido
Leia maisTópico 5 Algoritmos de Ordenação. Parte I - métodos de ordenação: inserção, mergesort, heapsort e quicksort.
Tópico 5 Algoritmos de Ordenação Parte I - métodos de ordenação: inserção, mergesort, heapsort e quicksort. 1 Problema Computacional: Ordenação Problema computacional que surge em diversas situações. Definição:
Leia maisGeometria Computacional p.1/14. Geometria Computacional p.1/14
Entrada: (4, 5), (3, 1), (2, 3), (0, 2), (5, 4), (5, 2), (1, 5), (2, 4), (4, 0), (0, 0) 5 4 3 2 1 0 1 2 3 4 5 Entrada: (4, 5), (3, 1), (2, 3), (0, 2), (5, 4), (5, 2), (1, 5), (2, 4), (4, 0), (0, 0) Primeira
Leia maisESTRUTURAS DE DADOS E ALGORITMOS ALGORITMOS DE ORDENAÇÃO POR COMPARAÇÃO - II
ESTRUTURAS DE DADOS E ALGORITMOS ALGORITMOS DE ORDENAÇÃO POR COMPARAÇÃO - II Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande ALGORITMOS VISTOS ANTERIORMENTE
Leia maisDesafios de Programação
Desafios de Programação 2018.1 Programação Dinâmica É um método de projeto de algoritmos que utiliza a memorização para melhorar a eficiência de um algoritmo. Método parecido com o de divisão e conquista
Leia maisAula 03: Análise de algoritmos melhor caso, pior caso e caso médio
Aula 03: Análise de algoritmos melhor caso, pior caso e caso médio David Déharbe Programa de Pós-graduação em Sistemas e Computação Universidade Federal do Rio Grande do Norte Centro de Ciências Exatas
Leia maisMarcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia
Introdução à Análise de Algoritmos Marcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia Aula de hoje Nesta aula veremos: Sobre a disciplina Exemplo: ordenação Sobre a disciplina
Leia maisAnálise e Complexidade de Algoritmos
Análise e Complexidade de Algoritmos Principais paradigmas do projeto de algoritmos - Recursividade - Tentativa e erro - Divisão e Conquista - Programação dinâmica - Algoritmos Gulosos e de Aproximação
Leia maisAnálise e Síntese de Algoritmos. Programação Dinâmica CLRS, Cap. 15
Análise e Síntese de Algoritmos Programação Dinâmica CLRS, Cap. 15 Contexto Revisões [CLRS, Cap. 1-10] Algoritmos em Grafos [CLRS, Cap. 22-26] Algoritmos elementares Árvores abrangentes Caminhos mais curtos
Leia maisRecursividade. Objetivos do módulo. O que é recursividade
Recursividade Objetivos do módulo Discutir o conceito de recursividade Mostrar exemplos de situações onde recursividade é importante Discutir a diferença entre recursividade e iteração O que é recursividade
Leia maisCAL ( ) MIEIC/FEUP Técnicas de Concepção de Algoritmos, CAL MIEIC/FEUP, Fev. de Técnicas de Concepção de Algoritmos. .
1 Técnicas de Concepção de Algoritmos (1ª parte): algoritmos gananciosos R. Rossetti, A.P. Rocha, A. Pereira, P.B. Silva, T. Fernandes CAL, MIEIC, FEUP Fevereiro de 2011 2 Algoritmos gananciosos (greedy
Leia maisCAL - Concepção e Análise de Algoritmos
3ª Aula Prática Divisão e Conquista Instruções Faça download do ficheiro cal20102011_fp03.zip da página da disciplina e descomprima-o (contém os ficheiros Test.cpp, Ponto.h, Ponto.cpp, UtilFunctions.cpp
Leia maisParadigmas de Projetos de Algoritmos
Paradigmas de Projetos de Algoritmos Luciana Assis 9 de junho de 2016 Luciana Assis (UFVJM) 9 de junho de 2016 1 / 36 1 Introdução 2 Força Bruta 3 Abordagem Incremental ou Construtiva 4 Recursão 5 Divisão
Leia maisAnálise de Algoritmos
Análise de Algoritmos Estes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 1 Aula 3 Transformada rápida de Fourier Secs 30.1 e 30.2 do CLRS e 5.6
Leia maisCaminho mais curto a partir de um nó Algoritmos de Dijkstra e Bellman-Ford. O problema tem subestrutura óptima
Caminho mais curto a partir de um nó Caminho mais curto a partir de um nó Algoritmos de Dijkstra e Bellman-Ford Fernando Lobo Algoritmos e Estrutura de Dados II Input: Um grafo com pesos nos arcos G =
Leia maisIntrodução Paradigmas
Introdução Paradigmas Recursividade Algoritmos tentativa e erro Divisão e conquista Programação dinâmica Algoritmos gulosos Algoritmos aproximados 1 Introdução O projeto de algoritmos requer abordagens
Leia maisProjeto de Algoritmos e Indução Matemática
Capítulo 3 Projeto de Algoritmos e Indução Matemática Um algoritmo é uma descrição precisa de um método para a resolução de determinado problema. Este capítulo apresenta a relação entre a prova de teoremas
Leia maisProgramação I Aula 15 Definições recursivas
Programação I Aula 15 Definições recursivas Pedro Vasconcelos DCC/FCUP 2018 Pedro Vasconcelos (DCC/FCUP) Programação I Aula 15 Definições recursivas 2018 1 / 30 Nesta aula 1 Definições recursivas 2 Exemplos
Leia maisCaminho mais curto a partir de um nó Algoritmos de Dijkstra e Bellman-Ford
Caminho mais curto a partir de um nó Algoritmos de Dijkstra e Bellman-Ford Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 28 Caminho mais curto a partir de um nó Input: Um grafo com pesos nos arcos
Leia maisProblema de seleção de atividades. Aula 14. Exemplo. Algoritmos Gulosos. Algoritmos Gulosos. Intervalo: par ordenado de números
Problema de seleção de atividades Aula 14 Algoritmos Gulosos Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Intervalo: par ordenado de números [s[i],f[i]): início e fim do intervalo
Leia maisAED-II, 2011/2012 Trabalho prático 1
AED-II, 2011/2012 Trabalho prático 1 Prazos e formalidades Prazo de entrega: 02/Mar/2012. Devem entregar um único ficheiro PDF com o nome aed2-trab1-gxx.pdf, em que XX é o vosso número de grupo. Na primeira
Leia maisAnálise e Síntese de Algoritmos. Revisão CLRS, Cap. 4, 6
Análise e Síntese de Algoritmos Revisão CLRS, Cap. 4, 6 Contexto Revisão Algoritmos e complexidade Notação Fundamentos: somatórios, logaritmos, etc. Exemplos de algoritmos Ordenação Procura Selecção 2007/2008
Leia maisMediana. Aula 09. Menor. i-ésimo menor elemento. Algoritmo de Seleção. -ésimo menor elemento. Mediana é o n+1. -ésimo menor ou o n+1
Mediana Aula 09 Algoritmo de Seleção Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Baseado em slides do Prof. Paulo Fiofilof Mediana é o n+1 2 -ésimo menor ou o n+1 2 -ésimo
Leia maisTeoria dos Conjuntos. (Aula 6) Ruy de Queiroz. O Teorema da. (Aula 6) Ruy J. G. B. de Queiroz. Centro de Informática, UFPE
Ruy J. G. B. de Centro de Informática, UFPE 2007.1 Conteúdo 1 Seqüências Definição Uma seqüência é uma função cujo domíno é um número natural ou N. Uma seqüência cujo domínio é algum número natural n N
Leia maisProgramação I Aula 16 Mais exemplos de recursão Pedro Vasconcelos DCC/FCUP
Programação I Aula 16 Mais exemplos de recursão DCC/FCUP DCC/FCUP 2019 1/ 28 Nesta aula 1 Desenhar árvores 2 Calcular potências 3 Ordenação Quicksort DCC/FCUP 2019 2/ 28 Desenhar árvores Vamos fazer uma
Leia maisAnálise e Síntese de Algoritmos. Revisão CLRS, Cap. 7-10
Análise e Síntese de Algoritmos Revisão CLRS, Cap. 7-10 Contexto Revisão Algoritmos e complexidade Notação Fundamentos: somatórios, recorrências, etc. Exemplos de algoritmos Ordenação Procura Selecção
Leia maisComplexidade de Algoritmos
Complexidade de Algoritmos! Uma característica importante de qualquer algoritmo é seu tempo de execução! é possível determiná-lo através de métodos empíricos, considerando-se entradas diversas! é também
Leia maisProgramação Dinâmica I SCC0210 Algoritmos Avançados (2/2011) Lucas Schmidt Cavalcante
Programação Dinâmica I SCC0210 Algoritmos Avançados (2/2011) Lucas Schmidt Cavalcante Introdução Soma máxima de uma subsequência contígua Problema do troco Quantidade de formas de dar troco Problema da
Leia maisAlgoritmos e Estruturas de Dados I Linguagem C
Algoritmos e Estruturas de Dados I (DCC/003) Algoritmos e Estruturas de Dados I Linguagem C Aula Tópico 11 Recursividade 1 Recursão Na linguagem C, uma função pode chamar outra função. A função main()
Leia maisQuickSort CI/2015. Análise e Projeto de Algoritmos. - Prof. Lucídio A. F. Cabral
QuickSort 1 Quicksort A[p q] A[q+1 r] Ordena um vetor A[p r] Divisão Particiona um vetor A em 2 subvetores A[p..q] e A[q+1..r], de tal modo que cada elemento de A[p..q] seja menor ou igual a cada elemento
Leia maisCIC 110 Análise e Projeto de Algoritmos I
CIC 110 Análise e Projeto de Algoritmos I Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 02 C++ e bibliotecas Vector C++ Os programas que iremos usar vai ser em C++ e ter o
Leia maisESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres
ESTRUTURA DE DADOS E ALGORITMOS Árvores Binárias de Busca Cristina Boeres Árvore Binária de Busca 30! construída de tal forma que, para cada nó: nós com chaves menores estão na sub-árvore esquerda nós
Leia maisProgramação Estruturada
Programação Estruturada Recursão Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Recursão Recursão 1 Recursão 2
Leia maisAnálise e Projeto de Algoritmos
Análise e Projeto de Algoritmos Prof. Eduardo Barrére www.ufjf.br/pgcc www.dcc.ufjf.br eduardo.barrere@ice.ufjf.br www.barrere.ufjf.br A Classe de Problemas P A classe de algoritmos P é formada pelos procedimentos
Leia maisMAC121 ALGORITMOS E ESTRUTURAS DE DADOS I 2O. SEMESTRE DE 2017
PROVA 1 MAC121 ALGORITMOS E ESTRUTURAS DE DADOS I 2O. SEMESTRE DE 2017 Nome: Número USP: Instruções: (1 ) Esta prova é individual. (2 ) Não destaque as folhas deste caderno. (3 ) A prova consiste de 6
Leia maisLógica de Hoare. Abordagem que usaremos: aplicar o método de Hoare sobre uma linguagem de programação imperativa simplificada.
Lógica de Hoare Método axiomático para provar que determinados programas são corretos. Introduzido em 1969 por Charles Antony Richard Hoare. Também utilizado para especificar a semântica de linguagens
Leia maisOrdenação: MergeSort. Prof. Túlio Toffolo BCC202 Aula 14 Algoritmos e Estruturas de Dados I
Ordenação: MergeSort Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 14 Algoritmos e Estruturas de Dados I DIVISÃO E CONQUISTA Motivação É preciso revolver um problema com uma entrada grande
Leia maisAED2 - Aula 11 Problema da separação e quicksort
AED2 - Aula 11 Problema da separação e quicksort Projeto de algoritmos por divisão e conquista Dividir: o problema é dividido em subproblemas menores do mesmo tipo. Conquistar: os subproblemas são resolvidos
Leia maisEstruturas Discretas
Estruturas Discretas 2017.2 Marco Molinaro > Indução Forte Corretude de Algoritmos 1/20 Indução Forte > Indução Forte Corretude de Algoritmos 2/20 Indução Forte X Indução Fraca Para provar Propriedade
Leia maisTécnicas de Desenho de Algoritmos
Técnicas de Desenho de Algoritmos Mudança de ênfase: da implementação de algoritmos para o desenho de algoritmos A ver: 5 tipos de algoritmos abordagem ao problema exemplos complexidade em tempo e espaço
Leia maisTécnicas de Desenho de Algoritmos
Técnicas de Desenho de Algoritmos Mudança de ênfase: da implementação de algoritmos para o desenho de algoritmos A ver: 5 tipos de algoritmos abordagem ao problema exemplos complexidade em tempo e espaço
Leia maisProgramação I Aula 15 Definições recursivas Pedro Vasconcelos DCC/FCUP
Programação I Aula 15 Definições recursivas DCC/FCUP DCC/FCUP 2019 1/ 30 Nesta aula 1 Definições recursivas 2 Exemplos Factorial Floco de neve de Koch Torre de Hanoi DCC/FCUP 2019 2/ 30 Recursividade Uma
Leia maisTeoria dos Grafos Aula 14
Teoria dos Grafos Aula 14 Aula passada MST Aula de hoje Construção de algoritmos Paradigma guloso Escalonando tarefas no tempo (interval scheduling) Projetando Algoritmos Dado um problema P, como projetar
Leia maisALGORITMOS DE ORDENAÇÃO RECURSIVOS
1/14 ALGORITMOS DE ORDENAÇÃO RECURSIVOS Ordenação rápida ( Quicksort ) 2/14 Ordenação rápida ( Quicksort ) Ideia - Baseia-se num princípio muito simples que, quando aplicado recursivamente, acaba por ordenar
Leia maisAlgoritmos e Estrutura de Dados
Algoritmos e Estrutura de Dados Fabrício Olivetti de França 02 de Fevereiro de 2019 Topics 1. Algoritmos de Ordenação Eficientes 1 Algoritmos de Ordenação Eficientes Heap Sort Na primeira aula de ordenação
Leia maisLuís Fernando Schultz Xavier da Silveira. 12 de maio de 2010
Monóides e o Algoritmo de Exponenciação Luís Fernando Schultz Xavier da Silveira Departamento de Informática e Estatística - INE - CTC - UFSC 12 de maio de 2010 Conteúdo 1 Monóides Definição Propriedades
Leia maisQuickSort. Estrutura de Dados II Jairo Francisco de Souza
QuickSort Estrutura de Dados II Jairo Francisco de Souza Particionamento Mecanismo principal dentro do algoritmo do QuickSort Para particionar um determinado conjunto de dados, separamos de um lado todos
Leia maisNormalização: 3 a Forma Normal
Normalização: 3 a Forma Normal Fernando Lobo Base de Dados, aula 10 1 / 14 3 a Forma Normal: Motivação Por vezes a decomposição para BCNF não preserva as DF s da relação original. Nesses casos, não devemos
Leia maisALGORITMOS AVANÇADOS. UNIDADE III Algoritmo de Ordenação por Intercalação (Mergesort) Luiz Leão
UNIDADE III Algoritmo de Ordenação por Intercalação (Mergesort) Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 3.1 - Definição 3.2 - Dividir para conquistar 3.3 - Problema da
Leia maisClasses, Herança e Interfaces
Escola de Artes, Ciências e Humanidades EACH-USP ACH2002 Introdução à Ciência da Computação II Professor: Delano Medeiros Beder revisada pelo professor: Luciano Digiampietri EACH Segundo Semestre de 2011
Leia maisQuicksort. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Quicksort David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Quicksort Proposto por Hoare em 1960 e publicado em 1962. É o algoritmo de ordenação interna mais rápido que se conhece para uma ampla
Leia maisPlanificação Anual da disciplina de Programação e Sistemas de Informação 10º 1PI
Res e M ó d u l o 1 - I n t r o d u ç ã o à P r o g r a m a ç ã o e A l g o r i t m i a 1. Introdução à Lógica de Programação 1.1. Lógica 1.2 Sequência Lógica 1.3 Instruções 1.4 Algoritmos 2. Desenvolvimento
Leia maisAnálise de Algoritmos
Análise de Algoritmos CLRS 2.3, 3.2, 4.1 e 4.2 Essas transparências foram adaptadas das transparências do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 1 Número de inversões Problema:
Leia maisResposta da pergunta 2: Θ(n 3 ). Resposta da pergunta 8: 1. 7 O(n). Sim. 22. n log n O(1). Não. 3. n + 7 O(n). Sim. 4. n + 7 O(1). Não.
SSC0503 - Introdução à Ciência de Computação II Respostas da 1 a Lista Professor: Claudio Fabiano Motta Toledo (claudio@icmc.usp.br) Estagiário PAE: Jesimar da Silva Arantes (jesimar.arantes@usp.br) Resposta
Leia maisMedida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Medida do Tempo de Execução de um Programa David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Medida do Tempo de Execução de um Programa O projeto de algoritmos é fortemente influenciado pelo
Leia maisFICHA de AVALIAÇÃO de MATEMÁTICA A 10.º Ano de escolaridade Versão 2
FICHA de AVALIAÇÃO de MATEMÁTICA A 3.º Teste 0.º Ano de escolaridade Versão Nome: N.º Turma: Professor: José Tinoco 0/0/07 É permitido o uso de calculadora científica Apresente o seu raciocínio de forma
Leia maisINF111 Programação II Aulas 11, 12, 13 Ordenação
INF Programação II Aulas,, Ordenação Departamento de Informática UFV Ordenação A ordenação é o processo de organizar um conunto (vetor) de n obetos ou registros segundo uma determinada ordem crescente
Leia maisUniversidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet
Aula 17 Quick Sort Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno Ordenação
Leia maisBubble Sort. Tempo total O(n 2 )
Bubble Sort Considere uma seqüência de n elementos que se deseja ordenar. O método da bolha resolve esse problema através de várias passagens sobre a seqüência Não é um algoritmo eficiente, é estudado
Leia maisRecursividade. Estrutura de Dados. Prof. Kleber Rezende
Recursividade Estrutura de Dados Prof. Kleber Rezende Considerações Iniciais Em aulas anteriores fizemos uma função que permite calcular o fatorial de um número. Naquela função, a cada nova iteração o
Leia mais