Complexidade de Algoritmos. Edson Prestes
|
|
|
- Eliana Tuschinski Bardini
- 9 Há anos
- Visualizações:
Transcrição
1 Edson Prestes
2 Divisão e conquista Divide um problema em subproblemas independentes, resolve-os e combina as soluções obtidas em uma solução para o problema original. Isso resulta em um processo recursivo de decomposições e recombinações. Pode ser aplicado em problemas de: buscas em tabelas, como buscas seqüencial e binária; classificação, como classificação por seleção (selectionsort), por intercalação (mergesort) e por particionamento (quicksort); multiplicação (de matrizes e de números binários, por exemplo); seleção (para determinar máximo e mínimo, etc.). posicionamento de braço manipuladores; planejamento de caminhos em robótica móvel, etc
3 Somatório dos elementos de uma lista. Considere uma lista L de elementos do tipo inteiro. Se L tem no máximo 1 elemento, a soma de seus elementos é trivial. Caso contrário, este somatório pode ser visto como sendo a soma dos elementos da primeira metade de L, chamada L 1, com os elementos da segunda metade, chamada L 2. somatorio(l):= se curta( L ) // Tem comprimento de no máximo 1? então retorna ( L ) // retona zero se L é vazia, ou o próprio elemento. senão retorna (soma(somatorio(sublist1(l)), somatorio(sublist2(l)))). Onde soma(r 1, r 2 ) = r 1 + r 2
4 Classificação de listas por intercalação de sublistas. O algoritmo recebe como entrada uma lista L e devolve esta lista classificada. Se L tem comprimento no máximo 1, então L já está classificada. Caso contrário, a lista L é dividida em duas listas aproximadamente do mesmo tamanho, L 1 e L 2 correspondendo a primeira e a segunda metades de L, respectivamente. L 1 e L 2 são recursivamente classificadas e intercaladas a fim de obter uma versão classificada da lista de entrada.
5
6 Divisão e conquista se a entrada é simples, a saida é obtida diretamente; caso contrário, a entrada é decomposta e aplicado o mesmo processo. os resultados parciais são combinados para gerar uma saída para a entrada original. Baseado nisto, podemos descrever a divisão e conquista binária como Onde - as funções part1 e part2 decompõem a entrada; - a função cmbn_2 combina as saídas; - o procedimento smpl testa se a entrada é simples ou não; e - a função drt dá a saída para entradas simples.
7 O algoritmo Mergesort pode ser obtido especializando a formulação recursiva da divisão e conquista binária Mergesort( d ) := Div_Conq_2 ( d ) smpl( d ) := compr( d ) 1 {teste smpl} ; drt ( d ) := d {operação drt} ; part1( d ) := Prim(d) {primeira parte} ; part2( d ) := Fin(d) {segunda parte} ; cmbn_2( r1, r2 ) := Intercl( r1, r2 ) {combinação}
8 O algoritmo Somatório pode ser visto como uma especialização da formulação recursiva da divisão e conquista somatorio(l):= se simples( L ) então retorna ( L ) senão retorna (soma(somatorio(sublist1(l)), somatorio(sublist2(l)))). Div_Conq_2 ( d ) :=Somatório( L) smpl( d ) := simples(l) drt ( d ) := retorna(l) part1( d ) := sublist1(l) part2( d ) := sublist2(l) cmbn_2( r1, r2 ) := soma( r1, r2 )
9 A recursão na divisão e conquista pode ser visualizada, em três estágios : 1. Construção da árvore de dados: é construída da raiz em direção à folhas (por decomposições repetidas das instâncias de dados) até que as folhas sejam simples. 2. Aplicação da função drt para transferir as folhas dados para o estágio de resultados. 3. Construção da árvore de resultados: é construída das folhas em direção à raiz.
10 A execução do algoritmo Mergesort sobre a entrada d := [ 4, 3, 2, 1 ]
11 A formulação binária pode ser generalizada para uma versão m-ária. Um exemplo imediato de divisão e conquista ternária (m = 3) pode ser obtido, modificando o algoritmo Quicksort. Essa nova versão divide a entrada em três partes a partir do pivô: a primeira com os elementos menores do que o pivô, a segunda com os elementos iguais ao pivô, e a terceira com os elementos maiores do que o pivô. A combinação é feita através do processo de concatenação.
12 Podemos ter o caso de divisão e conquista unária (m = 1). Neste caso, o termo divisão é substituido por redução Exemplos: algoritmos de busca - Na busca seqüencial, a pesquisa é direcionada a uma tabela com um elemento a menos, caso o elemento procurado ainda não tenha sido encontrado. - Na busca binária, a pesquisa é direcionada a uma das metades da tabela, dependendo da comparação com o elemento procurado.
13 Projeto de Algoritmos por Divisão e Conquista Considere a versão binária Podemos ajustar esta função para gerar diferentes algoritmos de classificação. Considere que smpl e a função unária drt correspondam, respectivamente, a Smpl(d) = compr(d) 1 Drt (d):=d
14 As decomposições e recombinações podem ser definidas da seguinte maneira Versão 1 Part 1 e Part 2 : a primeira e a segunda metades da entrada d e Cmbn_2(r 1, r 2 ) : a intercalação de r 1 e r 2. Dá origem ao algoritmo Mergesort Versão 2 Part 1 pode conter o menor valor da entrada d e Part 2 pode ser a entrada d restante. Cmbn_2(r 1, r 2 ) pode ser a concatenação de r 1 seguida de r 2. Dá origem ao algoritmo de Seleção
15 Quais são as árvores de execução para a entrada [4,3,2,1]? Algoritmo Mergesort Algoritmo Seleção
16 Quais são as árvores de execução para a entrada [2,1,0,3,5,4]? Algoritmo Mergesort Algoritmo Seleção
17 O que podemos concluir? Quanto mais balanceado for o particionamento do(s) dado(s) de entrada menores serão as árvores de execução! De acordo com o princípio da Equipartição, o desempenho do algoritmo é dependente do balanceamento do particionamento. Ele tende a melhorar a medida que o particionamento se torna equilibrado.
18 Mínimo & Máximo em Tabelas Smpl Identifique as funções: Drt, Smpl, Part e Cmbn. Drt Part 1 : Tab[p p s ] Part 2 : Tab[q i q] Cmbn
19 Árvores de Execução para a Entrada [1,4,5,2,3,5]
20 Ocorrência em Tabela (ch, tab[p q])
21 As árvores de execução para a Entrada [10,41,25,2,3,5]
22 Mínimo de Tabela por Divisão e Conquista Dada uma tabela Tab o algoritmo deve determinar o menor elemento armazenado. Se a entrada é pequena ( Tab 1), a resposta é trivial. Caso contrário, o primeiro elemento de Tab é eliminado e calculado o menor valor existente no restante da tabela (SubTab). Após ter este valor ter sido determinado, ele é comparado com o elemento previamente eliminado.
23 As árvores de execução para a entrada (10,41,25,2,3,5) divisão e conquista unária liberal.
24 Análise da complexidade : Ocorrência em Tabela (ch, tab[p q])
25 O Algoritmo recebe como entrada um par ordenado: uma chave de pesquisa e uma tabela tab retorna como saída um valor verdadeiro ou falso O tamanho da entrada corresponde a dimensão n da tabela tab. A operação fundamental é a comparação (Tab[p]=ch) da chave com os elementos da tabela Tab Quantas chamadas recursivas são realizadas? Quantas vezes a entrada d teve que ser particionada até smpl ser verdadeiro?
26 smpl drt part1 cmbn
27 As chamadas recursivas recebem como entrada um dado cujo tamanho varia da seguinte maneira O que H(d) representa? Quanto vale H(d)? Ele corresponde a altura da árvore de execução, a qual é no máximo n-1.
28 Qual é o desempenho do algoritmo Oc_Seq sobre a entrada d smpl Se smpl(d) (tam(d) 1), logo Desemp[Oc_seq] (d) = aval[smpl](d) + desemp[drt](d) drt part1 Se ~ smpl(d) (tam(d)>1), temos Desemp[Oc_seq] (d) = aval[smpl](d) + desemp[part 1 ](d) + Desemp[Oc_seq] (part 1 (d)) + cmbn Desemp[cmbn](Oc_seq(part 1 (d)))
29 Em relação ao número de comparações realizadas Se smpl(d) (tam(d) 1), temos Desemp[Oc_seq] (d) = aval[smpl](d) + desemp[drt](d) = 0+1 = 1 Se ~ smpl(d) (tam(d)>1), temos Desemp[Oc_seq] (d) = aval[smpl](d) + desemp[part 1 ](d) + Desemp[Oc_seq] (part 1 (d)) + Desemp[cmbn](Oc_seq(part 1 (d))) Desemp[Oc_seq] (d) = Desemp[Oc_seq] (part 1 (d)) + 0 = 1 + Desemp[Oc_seq] (part 1 (d))
30 Logo, o desempenho do algoritmo é descrito pela recorrência Portanto,
31 Análise da complexidade : Classificação de listas usando Mergesort
32 O Algoritmo recebe como entrada uma lista d de Elementos retorna como saída a lista d ordenada O tamanho da entrada corresponde à quantidade de elementos n da lista d. A operação fundamental corresponde a comparação entre os elementos da lista Quantas chamadas recursivas são realizadas? Quantas vezes a entrada d foi particionada até smpl ser verdadeiro?
33 A cada nível a entrada tem tamanho máximo de acordo com a seguinte tabela Onde A quantidade de chamadas H(d) é dependente de S(d)
34 O desempenho do algoritmo MergeSort sobre a entrada d é Se smpl(d) (tam(d) 1), logo Desemp[MergeSort] (d) = aval[tam(d) 1] + desemp[r d] = 0 + 0=0 Se ~ smpl(d) (tam(d)>1), temos Desemp[MergeSort](d)=aval[tam(d) 1]+ Desemp[d 1 Prim(d)] + Desemp[d 1 Fin(d)]+ Desemp[MergeSort](Prim(d))+ Desemp[MergeSort](Fin(d)) + Desemp[Intercl](MergeSort (Prim(d)), MergeSort (Fin(d))). = Desemp[MergeSort](Prim(d))+ Desemp[MergeSort](Fin(d)) + tam(mergesort (Prim(d)))+ tam(mergesort (Fin(d)))-1.
35 Como a quantidade de elementos se mantém constante durante toda a execução temos que Prim(d) + Fin(d) = tam(d), logo Desemp[MergeSort](d)=Desemp[MergeSort](Prim(d))+ Desemp[MergeSort](Fin(d)) + tam(d)-1. Portanto, o desempenho do algoritmo em função do número de comparações é
36 A cota superior (CS) do Algoritmo é
37 Portanto
Complexidade de Algoritmos. Edson Prestes
Edson Prestes Projeto e Análise de Algoritmos Algoritmo: Prod_Int(n, p, q : Int) Int 1. se n = 1 2. Então r p. q ; 3. retorne-saída( r ); {saída direta} 4. fim-então 5. Senão x p1 + p2 ; y q1 + q2 ;. 6.
BCC202 - 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: [email protected]
Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula
Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula Tópicos Introdução Ordenação por bolha (bubble sort)
Aná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
Algoritimos 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
Projeto 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
Complexidade de Algoritmos. Edson Prestes
Edson Prestes Programação Dinâmica A programação dinâmica costuma ser aplicada a problemas de otimização resultando, em geral, em algoritmos mais eficientes que os mais diretos. Esse método é útil quando
ALGORITMOS DE ORDENAÇÃO
ALGORITMOS DE ORDENAÇÃO Prof. André Backes Conceitos básicos 2 Ordenação Ato de colocar um conjunto de dados em uma determinada ordem predefinida Fora de ordem 5, 2, 1, 3, 4 Ordenado 1, 2, 3, 4, 5 OU 5,
Estruturas 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
Algoritmos 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 [email protected] 10/2008 Material
Paradigmas 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
Mergesort. 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
Algoritmos de Ordenação. Profº Carlos Alberto T. Batista
Algoritmos de Ordenação Profº Carlos Alberto T. Batista E-mail: [email protected] [email protected] Por que ordenar os dados? Encontrar elementos em uma lista torna-se algo simples e
Complexidade de Algoritmos. Edson Prestes
Edson Prestes Exemplos Exemplos A complexidade no pior caso é linear e igual a n, ou seja, é O(n) A complexidade média é linear e igual a (1+n)/2, ou seja, é O(n) Exemplos Considere o produto C de uma
Introduçã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
AED2 - 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
Soluçã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/ [email protected]
Edital de Seleção 032/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 032/2016 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
Métodos de ordenação. Bubble sort:
Métodos de ordenação Bubble sort: O método de ordenação por bubble sort ou conhecido como bolha consiste em compara dados armazenados em um vetor de tamanho qualquer, comparando cada elemento de uma posição
Algoritmos de Ordenação
Algoritmos de Ordenação! Problema: encontrar um número de telefone em uma lista telefônica! simplificado pelo fato dos nomes estarem em ordem alfabética! e se estivesse sem uma ordem?! Problema: busca
Classificação Externa: Intercalação de Partições Classificadas
Classificação Externa: Intercalação de Partições Classificadas Vanessa Braganholo Baseado no Material de: Inhaúma Neves Ferraz (IC/UFF) Relembrando: Modelo da Classificação Externa 2 Aula Passada: Etapa
Análise de algoritmos
Análise de algoritmos Introdução à Ciência de Computação II Baseados nos Slides do Prof. Dr. Thiago A. S. Pardo Análise de algoritmos Existem basicamente 2 formas de estimar o tempo de execução de programas
Universidade 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
Programação imperativa
Capítulo 8 Programação imperativa 8.1 Exercícios de revisão 1. Distinga entre programação imperativa e programação funcional. 2. Explique a necessidade da introdução do operador de atribuição. 3. Diga
heapsort (int *x, int n) { int i, e, s, f, aux; /*fase de pré-processamento - cria heap inicial*/ for (i=1; i<n; i++) { e = x[i]; s = i; f = (s-1)/2;
heapsort (int *x, int n) { int i, e, s, f, aux; /*fase de pré-processamento - cria heap inicial*/ for (i=1; i0 && x[f]
Ordenaçã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
Aná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
Busca em Memória Primária Estrutura de Dados II
Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Busca em Memória Primária Estrutura de Dados II Estrutura de Dados II COM10078 2017-I Prof. Marcelo Otone Aguiar [email protected]
Programação dinâmica
Programação dinâmica CLRS 15.2 15.3 = recursão com tabela = transformação inteligente de recursão em iteração Algoritmos p. 1 Multiplicação iterada de matrizes Se A é p q e B é q r então AB é p r. (AB)[i,j]
Ordenação Externa. Ordenação Externa. Ordenação Externa. Ordenação Externa
Ordenação Externa Ordenação Externa Estrutura de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação
Algoritmos de Ordenação. Cota inferior. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO
Algoritmos de Ordenação Cota inferior Professora: Fátima L. S. Nunes 1 1 1 Algoritmos de Ordenação Algoritmos de ordenação que já conhecemos: 2 2 2 Algoritmos de Ordenação Algoritmos de ordenação que já
Modelagem com relações de recorrência. Exemplo: Determinada população dobra a cada ano; população inicial = 5 a n = população depois de n anos
Relações de recorrência 8. RELAÇÕES DE RECORRÊNCIA Introdução a relações de recorrência Modelagem com relações de recorrência Solução de relações de recorrência Exemplos e aplicações Relações de recorrência
Divisã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
Bubble 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
Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura
Árvores B Prof. Márcio Bueno [email protected] / [email protected] Fonte: Material da Prof a Ana Eliza Lopes Moura Situação Problema Memória Principal Volátil e limitada Aplicações Grandes
Algoritmos 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
Classificação Externa: Intercalação de Partições Classificadas
Classificação Externa: Intercalação de Partições Classificadas Vanessa Braganholo Baseado no Material de: Inhaúma Neves Ferraz (IC/UFF) Relembrando: Modelo da Classificação Externa 2 Aula Passada: Etapa
5. Algoritmos de Ordenação
Introdução à Computação II 5952011 5. Algoritmos de Ordenação Prof. Renato Tinós Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 5.1. Ordenação por Inserção 5.2. Ordenação por Seleção
Métodos de Ordenação Parte I
Estrutura de Dados II Métodos de Ordenação Parte I Prof a Márcio Bueno [email protected] / [email protected] Material baseado nos materiais da Prof a Ana Eliza e Prof. Robson Lins Rearranjar
Edital de Seleção 023/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 023/2018 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
Estruturas de Dados. Aula 08. Árvores AVL II. Karina Mochetti
Estruturas de Dados 2018.2 Árvore AVL Uma Árvore AVL (Adelson, Velskii e Landis) T é uma Árvore Binária de Busca Balanceada, tal que: T é vazia; T consiste de um nó raiz k e duas subárvores binárias Te
ALGORITMOS 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 [email protected] http://www.luizleao.com Conteúdo Programático 3.1 - Definição 3.2 - Dividir para conquistar 3.3 - Problema da
Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo
PMR2300 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó (exceto a
Aula 12 Métodos de Classificação: - Classificação por Inserção Direta - Classificação por Seleção Direta
Aula 12 Métodos de Classificação: - Classificação por Inserção Direta - Direta Prof. Gustavo Callou [email protected] [email protected] Classificação por Inserção Métodos de Classificação em Memória
Aná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
Exercícios: Recursão
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Recursão 1. Faça uma função recursiva que calcule e retorne o fatorial
Edital de Seleção 055/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 055/2017 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
Trabalho Prático 1. Valor: 1,0 pontos (10% da nota total) Data de Entrega: 02/05/2010
Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Biológicas Programa de Pós-Graduação em Ciência da Computação Projeto e Análise de Algoritmos - 1 o semestre de 2010 Professor: David Menotti
Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo
PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó
CURSO DE ESTRUTURA DE DADOS MÓDULO: ALGORITMOS DE ORDENAÇÃO E PESQUISA PROFESSORA: DANIELA ELOISE FLÔR COLABORADORA: MARIA CAROLINA SILA VANUCHI
CURSO DE ESTRUTURA DE DADOS MÓDULO: ALGORITMOS DE ORDENAÇÃO E PESQUISA PROFESSORA: DANIELA ELOISE FLÔR COLABORADORA: MARIA CAROLINA SILA VANUCHI O QUE SÃO ALGORITMOS DE ORDENAÇÃO? São algoritmos que organizam
Análise de Algoritmos Estrutura de Dados II
Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Análise de Algoritmos Estrutura de Dados II COM10078 - Estrutura de Dados II Prof. Marcelo Otone Aguiar [email protected]
Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo
PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó
Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013
Lista 1 - PMR2300 Fabio G. Cozman 3 de abril de 2013 1. Qual String é impressa pelo programa: p u b l i c c l a s s What { p u b l i c s t a t i c void f ( i n t x ) { x = 2 ; p u b l i c s t a t i c void
Ordenação de Dados. Ordenação de Dados
UFSC-CTC-INE INE38 - Estruturas de Dados Ordenação de Dados Prof. Ronaldo S. Mello 00/ Ordenação de Dados Processo bastante utilizado na computação de uma estrutura de dados Dados ordenados garantem uma
Árvores B. Prof. Flávio Humberto Cabral Nunes
Árvores B Prof. Flávio Humberto Cabral Nunes Conteúdo 1. Introdução 2. Busca 3. Inserção 4. Remoção 5. B* 6. B+ Capítulo: 8 (APOSTILA). Introdução Em muitas aplicações, a tabela considerada é muito grande
Pesquisa em memória primária
Pesquisa em memória primária Pesquisa em memória primária Recuperar informação a partir de uma grande massa de informação previamente armazenada. Existem vários métodos de pesquisa, depende de: Tamanho
5. Análise de Complexidade de Algoritmos. João Pascoal Faria (versão original) Ana Paula Rocha (versão 2003/2004) Luís Paulo Reis (versão 2005/2006)
5. Análise de Complexidade de Algoritmos João Pascoal Faria (versão original) Ana Paula Rocha (versão 2003/2004) Luís Paulo Reis (versão 2005/2006) FEUP - MIEEC Prog 2-2006/2007 Introdução Algoritmo: conjunto
Lista de Exercícios de CES-11 CTA - ITA - IEC
Lista de Exercícios de CES11 CTA ITA IEC Importante: Não vale nota, ou seja, não é preciso entregar! A. Passagem de parâmetros, escopo de variáveis, recursão 1. Analise o código abaixo. Qual é a sua saída?
Classificação por Intercalação
458 Classificação por Intercalação Este é um bom exemplo de abordagem top down, ou de aplicação do princípio da divisão e conquista, associado à recursividade. Ao se observar o andamento do processo sobre
Memória secundária. Memória secundária
introdução ordenação interna ordenação externa ordenar processo de rearranjar um conjunto de itens em uma ordem ascendente ou descendente visa facilitar a recuperação posterior de itens do conjunto ordenado
Recursividade. 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
QuickSort. 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
Quick Sort. Considerações Sobre Algoritmos de Ordenação. Estagiário PAE: Jesimar da S. Arantes Professor: Claudio Quick F. M.
Quick Sort Considerações Sobre Algoritmos de Ordenação Professor: Claudio F. M. Toledo 26 de Outubro de 2016 Professor: Claudio Quick F. M. Sort Toledo 26 de Outubro de 2016 1 / 14 Quicksort: Escolha do
Projeto de Algoritmos por Divisão e Conquista
Projeto de Algoritmos por Divisão e Conquista Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG) Divisão e Conquista junho - 2018 1 / 70 Este material é preparado
Algoritmo MergeSort. Estrutura de Dados II Prof Jairo Francisco de Souza
Algoritmo MergeSort Estrutura de Dados II Prof Jairo Francisco de Souza Intercalação Generalidades Intercalação é o processo através do qual diversos arquivos seqüenciais classifcados por um mesmo critério
ÁRVORES E ÁRVORE BINÁRIA DE BUSCA
ÁRVORES E ÁRVORE BINÁRIA DE BUSCA Prof. André Backes Definição 2 Diversas aplicações necessitam que se represente um conjunto de objetos e as suas relações hierárquicas Uma árvore é uma abstração matemática
Arquivos Seqüenciais: Intercalação
Arquivos Seqüenciais: Intercalação Vanessa Braganholo Baseado no Material de: Inhaúma Neves Ferraz (IC/UFF) Cenário Diversos arquivos sequenciais ordenados Problema: gerar um único arquivo ordenado a partir
Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral
SCC-214 Projeto de Algoritmos Thiago A. S. Pardo Listas e árvores Listas lineares Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral Diversas aplicações necessitam de estruturas
Conceitos gerais Terminologia Forma de Representação de Árvores Árvores Binárias
Conceitos gerais Terminologia Forma de Representação de Árvores Árvores Binárias Conceitos gerais Representação por Contiguidade Física Representação por Encadeamento Operações 2 Conceitos gerais Uma árvore
MÉTODOS DE ORDENAÇÃO. Introdução à Programação SI2
MÉTODOS DE ORDENAÇÃO Introdução à Programação SI2 2 Conteúdo Conceitos básicos Classificação por troca Classificação por inserção Classificação por seleção 3 Conceitos Básicos Ordenar: processo de rearranjar
2. Diga qual é a diferença entre tipos de informação elementares e tipos de informação estruturados.
Capítulo 5 Abstracção de dados 5. Exercícios de revisão. Diga o que é um tipo abstracto de informação.. Diga qual é a diferença entre tipos de informação elementares e tipos de informação estruturados.
SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca
ÁRVORES SUMÁRIO Fundamentos Árvores Binárias Árvores Binárias de Busca 2 ÁRVORES Utilizadas em muitas aplicações Modelam uma hierarquia entre elementos árvore genealógica Diagrama hierárquico de uma organização
Transformada Rápida de Fourier (FFT)
Transformada Rápida de Fourier (FFT) A FFT é um algoritmo eficiente para calcular a DFT A DFT de uma sequência x n de comprimento finito N é definida como: N 1 N 1 X k = x n e j2π N kn = x n W N kn, 0
Edital de Seleção 016/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 016/2018 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária. Túlio Toffolo
Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária Túlio Toffolo www.decom.ufop.br/toffolo Pesquisa em Memória Primária n Introdução - Conceitos Básicos n Pesquisa Sequencial n Pesquisa Binária n Árvores
Árvores. Árvores Binárias. Conceitos gerais Terminologia Forma de Representação de Árvores. Conceitos gerais Operações
Árvores Conceitos gerais Terminologia Forma de Representação de Árvores Árvores Binárias Conceitos gerais Operações 2 Conceitos gerais Uma árvore é uma estrutura de dados que se caracteriza por uma relação
ÁRVORE BINÁRIA DE BUSCA TDA-ABB
ÁRVORE BINÁRIA DE BUSCA TDA-ABB Conceitos Gerais sobre Árvores Uma árvore é uma estrutura hierárquica dividida em níveis, que ou está vazia, ou contém elementos chamados nós; Diferentemente da árvore natural,
Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 024/2017 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: «Nome» INSCRIÇÃO: «Inscrição» Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome
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 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
Análise de Algoritmos Algoritmos de Ordenação
Análise de Algoritmos Algoritmos de Ordenação Nelson Cruz Sampaio Neto [email protected] Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação 5 de abril de 2016
Textos de apoio às aulas práticas. Jaime Ramos, Francisco Miguel Dionísio
Computação e Programação Textos de apoio às aulas práticas Jaime Ramos, Francisco Miguel Dionísio DMIST, Dezembro de 2010 Parte I MATLAB 1 Capítulo 1 Exercícios preliminares 1. Defina a função conta divisores
ALGORITMOS AVANÇADOS UNIDADE II Recursividade. Luiz Leão
Luiz Leão [email protected] http://www.luizleao.com Conteúdo Programático 2.1 - Definições recursivas 2.2 - Como implementar recursividade 2.3 - Quando não usar recursividade 2.4 - Desenvolvendo algoritmos
