Aula 05 Ordenação parcial
|
|
|
- Marcelo Lima Caldas
- 9 Há anos
- Visualizações:
Transcrição
1 MC3305 Algoritmos e Estruturas de Dados II Aula 05 Ordenação parcial Prof. Jesús P. Mena-Chalco [email protected] 2Q
2 Ordenação parcial (seleção do k-éssimo maior) Consiste em obter os k primeiros elementos de um vetor ordenado com n elementos. Quando k=1 o problema se reduz a encontrar o mínimo (ou o máximo) de um conjunto de elementos. Quando k=n caímos no problema clássico de ordenação. 2
3 Ordenação parcial Os algoritmos de Ord. Parcial que estudaremos serão: Seleção parcial Inserção parcial Heapsort parcial Quicksort parcial ( lista 01 ) 3
4 Representação de árvores em vetores Slides baseados no material de aula do Prof. José Coelho de Pina (IME/USP) 4
5 5
6 Pais e filhos A[1..m] é um vetor representado por uma árvore Diremos que para qualquer índice ou nó i: floor(i/2) é o pai de i. 2*i é o filho esquerdo de i. 2*i+1 é o filho direito de i. O nó 1 não tem pai e é chamado de nó raiz. Um nó i só tem filho esquerdo se 2*i m. Um nó i só tem filho direito se 2*i+1 m. Um no i é um nó folha, se não tem filhos: 2*i> m. 6
7 Pais e filhos Todo nó i é raiz da sub-árvore formada por: 7
8 Propriedades A[1..m] é um vetor representado por uma árvore 8
9 Heapsort parcial 9
10 Heapsort parcial Utiliza um tipo abstrato de dados min-heap para informar o menor item do conjunto. 5 Usando um MIN-HEAP Na primeira iteração, o menor item que está em V[1] (raiz do heap) é trocado com o item que está em V[n-1]. 7 9 Em seguida o heap é refeito. Novamente o menor está em V[1], troque-o com V[n-2] Repita as duas últimas operações até que o k-ésimo menor esteja seja trocado com V[n-k]. Ao final, os k menores estão nas k últimas posições do vetor V. Animação: 10
11 Heapsort parcial Utiliza um tipo abstrato de dados min-heap para informar o menor item do conjunto. 5 Usando um MIN-HEAP Na primeira iteração, o menor item que está em V[1] (raiz do heap) é trocado com o item que está em V[n-1]. 7 9 Em seguida o heap é refeito. 12 Novamente o menor está em V[1], troque-o com V[n-2]. Repita as duas últimas operações até que o k-ésimo menor esteja seja trocado com V[n-k]. Ao final, os k menores estão nas k últimas posições do vetor V Animação:
12 Heapsort parcial 12
13 Heapsort parcial 13
14 Heapsort parcial O BuildMinHeap deve construir o heap a um custo O(n). O prodecimento MinHeapify (arruma o heap) tem um custo de O(lg(n)). O procedimento PartialHeapSort chama o procedimento MinHeapify k vezes. Complexidade: 14
15 Heapsort parcial O BuildMinHeap deve construir o heap a um custo O(n). O prodecimento MinHeapify (arruma o heap) tem um custo de O(lg(n)). O procedimento PartialHeapSort chama o procedimento MinHeapify k vezes. Complexidade: 15
16 Heapsort parcial 16
17 Comparação empírica dos algoritmos 17
18 Fonte: 18
19 Comparação empírica dos algoritmos Para valores de k até 1.000, o método da PartialInsertionSort é imbatível. O PartialQuicksort nunca ficar muito longe da InserçãoParcial. Na medida em que o k cresce o PartialQuicksort é a melhor opção. Para valores grandes de k, o método da PartialInsertionSort se torna ruim. Um método indicado para qualquer situação é o PartialQuicksort. O PartialHeapsort tem comportamento parecido com o do PartialQuicksort. No entano o PartialHeapsort. Fonte: 19
20 Atividade em laboratório 20
21 Atividade (1) Criar uma área no Cloud9: (2) Baixar do repositório do Tidia o arquivo: aed2-05.tgz (3) Subir o arquivo aed2-05.tgz a sua área no Cloud9 (4) Descomprimir o arquivo aed2-05.tgz (no Cloud9). Abrir um terminal (Alt-T) tar xvfz aed2 05.tgz Os arquivos da atividade estão no diretório aed2-05: cd aed2 05 ls lsh cat /proc/cpuinfo free h htop 21
22 Arquivo: heapparcial.c 22
23 Arquivo: atividade.c 23
24 Arquivo: atividade.c 24
25 Arquivo: atividade.c 25
26 Arquivo: atividade.c Modifique o procedimento PartialHeapSort para que devolva o número de comparações realizadas para obter os k primeiros elementos do vetor dado como entrada. N 26
27 Arquivo: atividade.c (solução) 27
28 Arquivo: atividade.c (solução) 28
29 Arquivo: atividade.c (solução) 29
30 Arquivo: atividade.c (solução) Para visualizar o manual do programa: $ man sort 30
31 Domains:.io.fm.to.tv 31
32 Domains:.io.fm.to.tv Fonte: 32
Aula 04 Ordenação parcial
MC3305 Algoritmos e Estruturas de Dados II Aula 04 Ordenação parcial Prof. Jesús P. Mena-Chalco [email protected] 2Q-2015 1 Ordenação Limite assintótico para algoritmos de ordenação baseadas em comparações
Limite assintótico para a ordenação, Ordenação em tempo linear
Algoritmos e Estruturas de Dados I Limite assintótico para a ordenação, Ordenação em tempo linear Prof. Jesús P. Mena-Chalco [email protected] 1Q-2017 1 Ordenação Ordenar corresponde ao processo
Ordenação: Heapsort. Algoritmos e Estruturas de Dados II
Ordenação: Heapsort Algoritmos e Estruturas de Dados II Introdução Possui o mesmo princípio de funcionamento da ordenação por seleção Selecione o menor item do vetor Troque-o pelo item da primeira posição
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)
Ordenação. Prof. Jonas Potros
Ordenação Prof. Jonas Potros Conceitos Básicos Ordenar: processo de rearranjar um conjunto de objetos em uma ordem ascendente ou descendente. A ordenação visa facilitar a recuperação posterior de itens
INF 1010 Estruturas de Dados Avançadas
INF 1010 Estruturas de Dados Avançadas Listas de Prioridades e Heaps 1 Listas de Prioridades Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade A prioridade associada a um
Ordenação de Dados (III) HeapSort
UFSC-CTC-INE INE53 - Estruturas de Dados Ordenação de Dados (III) Prof. Ronaldo S. Mello 00/ HeapSort HeapSort também é um método de seleção ordena através de sucessivas seleções do elemento correto a
Ordenação: HeapSort. Prof. Túlio Toffolo BCC202 Aula 17 Algoritmos e Estruturas de Dados I
2014-01 Aula 16 Fila de Prioridade / HeapSort Adaptado por Reinaldo Fortes para o curso de 2014-01 Arquivo original: Aula 17: HeapSort Ordenação: HeapSort Prof. Túlio Toffolo http://www.toffolo.com.br
UNIVERSIDADE FEDERAL DO PIAUÍ COLÉGIO TÉCNICO DE TERESINA-TÉCNICO EM INFORMÁTICA DISCIPLINA: ESTRUTURA DE DADOS PROFESSOR: Valdemir Junior
UNIVERSIDADE FEDERAL DO PIAUÍ COLÉGIO TÉCNICO DE TERESINA-TÉCNICO EM INFORMÁTICA DISCIPLINA: ESTRUTURA DE DADOS PROFESSOR: Valdemir Junior ALGORITMO DE ORDENAÇÃO HEAPSORT Alyson Pereira Barbosa Erisvaldo
2. Ordenação por Seleção
1 Algoritmos de Ordenação Simples (SelectionSort, InsertionSort, BubbleSort) 1. Introdução Objetivo: Determinar a seqüência ordenada dos elementos de um vetor numérico. Algumas considerações: O espaço
Métodos de Ordenação
Métodos de Ordenação Conceitos básicos sobre ordenação Ordenar corresponde ao processo de rearranjar um conjunto de objetos em uma ordem específica. Objetivo da ordenação: facilitar a recuperação posterior
INF111 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
Algoritmos de Ordenação: Tempo Linear
Algoritmos de Ordenação: Tempo Linear 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
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO UNIVERSITÁRIO NORTE DO ESPÍRITO SANTO
Disciplina: Estrutura de Dados II Turma: 4EC/5CC Data: 13/11/15 Nota: Professor: Renato E. N. de Moraes Semestre: 2015-2 Valor: 0,0 pts Aluno: Lista de exercícios 04 1. O que é a eficiência assintótica
HeapSort. Estrutura de Dados II Jairo Francisco de Souza
HeapSort Estrutura de Dados II Jairo Francisco de Souza HeapSort Algoritmo criado por John Williams (1964) Complexidade O(NlogN) no pior e médio caso Mesmo tendo a mesma complexidade no caso médio que
ESTRUTURA DE DADOS E ALGORITMOS HEAPS E LISTAS DE PRIORIDADES
ESTRUTURA DE DADOS E ALGORITMOS HEAPS E LISTAS DE PRIORIDADES Listas de Prioridades! Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade! A prioridade associada a um dado pode
1. O que é a eficiência assintótica de um algoritmo. Explique com suas palavras.
Disciplina: Estrutura de Dados II Turma: 4EC/5CC Data: 13/11/15 Nota: Professor: Renato E. N. de Moraes Semestre: 2015-2 Valor: 0,0 pts Aluno: Lista de exercícios 04 1. O que é a eficiência assintótica
Aula 13: Ordenação - Heapsort. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP
Aula 13: Ordenação - Heapsort Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Filas de Prioridades É uma estrutura de dados onde a chave de cada item reflete sua habilidade relativa de abandonar
HeapSort Filas de Prioridade Heap. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
HeapSort Filas de Prioridade Heap David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Filas de Prioridades É uma estrutura de dados onde a chave de cada item reflete sua habilidade relativa de
BCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 12: Ordenação: Bubble, Selection e Insertion Sort Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes
Análise empírica de algoritmos de ordenação
Análise empírica de algoritmos de ordenação Mario E. Matiusso Jr. (11028407) Bacharelado em Ciências da Computação Universidade Federal do ABC (UFABC) Santo André, SP Brasil mario3001[a]ig.com.br Resumo:
MCTA028 Programação Estruturada Aula 20 Exercícios de custos de um algoritmo
MCTA028 Programação Estruturada Aula 20 Exercícios de custos de um algoritmo Prof. Jesús P. Mena-Chalco Q-2017 1 Estudo de algoritmos O projeto de algoritmos é influenciado pelo estudo de seus comportamentos.
Extra- Algoritmos de Ordenação
Extra- Algoritmos de Ordenação 1 Introdução Ordenar: processo de rearranjar um conjunto de objetos em uma ordem ascendente ou descendente. A ordenação visa facilitar a recuperação posterior de itens do
Heaps. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35
Heaps Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Introdução Definição de Heap Heap Binária Implementação com vetor Fila de Prioridades
Aula 13 Árvores Rubro-Negras
MC3305 Algoritmos e Estruturas de Dados II Aula 13 Árvores Rubro-Negras Prof. Jesús P. Mena-Chalco [email protected] 2Q-2015 1 Árvores de Busca Binária Por que ABBs? São estruturas eficientes de
Ordenação. Ordenação. Introdução - Conceitos Básicos. Introdução - Conceitos Básicos
Projeto de Algoritmos Cap.4 Ordenação 1 Ordenação Introdução - Conceitos Básicos Ordenação Última alteração: 26 de Março de 2004 Transparências elaboradas por Fabiano C. Botelho e Nivio Ziviani Ordenação
Ordenação Interna. Prof. Jonas Potros
Ordenação Interna Prof. Jonas Potros Heap A estrutura de dados heap é um objeto arranjo que pode ser visto como uma árvore binária completa. A árvore está completamente preenchida em todos os níveis, exceto
Algoritmos de ordenação: Inserção e Shellsort
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Algoritmos de ordenação: Inserção e Shellsort Algoritmos e Estruturas de Dados I Slides adaptados dos slides do livro texto (Ziviani) e dos slides
Aula 07: Algoritmos de busca e Listas encadeadas
BC1424 Algoritmos e Estruturas de Dados I Aula 07: Algoritmos de busca e Listas encadeadas Prof. Jesús P. Mena-Chalco [email protected] 1Q-2016 1 Busca de um elemento 2 Exemplo: Busca de um elemento
MC3305 Algoritmos e Estruturas de Dados II. Aula 00 Apresentação. Prof. Jesús P. Mena-Chalco.
MC3305 Algoritmos e Estruturas de Dados II Aula 00 Apresentação Prof. Jesús P. Mena-Chalco [email protected] 2Q-2015 1 Apresentação Professor: Jesús P. Mena-Chalco (CMCC) Formação: - Engenheiro da
Listas de Prioridade. Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC.
Listas de Prioridade Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Capítulo 6 Prioridade } Algumas aplicações precisam recuperar rapidamente um dado
MCTA028 Programação Estruturada Aula 19 Custos de um algoritmo e funções de complexidade
MCTA028 Programação Estruturada Aula 19 Custos de um algoritmo e funções de complexidade Prof. Jesús P. Mena-Chalco 3Q-2017 1 0 A = n-1... 2 0 A = n-1... - O programa funciona (está correto)? - Como medir/mensurar
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
Projeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 09 Algoritmos de Ordenação Edirlei Soares de Lima Ordenação Problema: Entrada: conjunto de itens a 1, a 2,..., a n ; Saída: conjunto de itens
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á
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]
SCC-601 Introdução à Ciência da Computação II. Ordenação e Complexidade Parte 3. Lucas Antiqueira
SCC-60 Introdução à Ciência da Computação II Ordenação e Complexidade Parte 3 Lucas Antiqueira Ordenação: Utiliza uma estrutura de dados chamada heap para ordenar. Um heap é um vetor (array) que representa
Ordenação. Última alteração: 31 de Agosto de Transparências elaboradas por Charles Ornelas Almeida, Israel Guerra e Nivio Ziviani
Ordenação Última alteração: 31 de Agosto de 2010 Transparências elaboradas por Charles Ornelas Almeida, Israel Guerra e Nivio Ziviani Projeto de Algoritmos Cap.4 Ordenação 1 Conteúdo do Capítulo 4.1 Ordenação
Projeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 10 Métodos de Ordenação de Complexidade Linear Edirlei Soares de Lima Ordenação Problema: Entrada: conjunto de itens a 1, a 2,..., a n ; Saída:
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
Aula 05: - Recursão (parte 1)
MCTA028 Programação Estruturada Aula 05: - Recursão (parte 1) Prof. Jesús P. Mena-Chalco [email protected] 3Q-20107 1 Recursão: Se você ainda não entendeu; Ver: "Recursão". Efeito Droste Anuncio
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
Algoritmos e Estrutura de dados II. Fila de Prioridade e Heaps
Algoritmos e Estrutura de dados II Fila de Prioridade e Heaps 1 Heap Sort...mas antes Agenda Implementação de uma Fila de Prioridade usando um HEAP Propriedade do Heap e exemplos adcionar min/max Remover
Material preparado a partir de slides dos profs. Jesús Mena-Chalco e Fabrício Olivetti
1 MCTA028 Programação Estruturada Material preparado a partir de slides dos profs. Jesús Mena-Chalco e Fabrício Olivetti Prof. Luiz Rozante 3Q-2018 2 MCTA028 Programação Estruturada Apresentação Prof.
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]
Aula 28: Listas de Prioridades
28.1 Aula 28: Listas de Prioridades Conceitos básicos Definição de heap Alteração de prioridades 28.2 Listas de Prioridades Motivação: Os dados possuem prioridades. A prioridade de um dado pode variar
Estruturas de Dados 2
Estruturas de Dados 2 Algoritmos de Ordenação em Tempo Linear IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/38 Algoritmos de Ordenação em Tempo Linear Limite Assintótico
Aula 10 Árvores Adelson-Velskii e Landis
MC3305 Algoritmos e Estruturas de Dados II Aula 10 Árvores Adelson-Velskii e Landis Prof. Jesús P. Mena-Chalco [email protected] 2Q-2014 1 Árvores balanceadas 2 Árvores balanceadas As ABB permitem
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
DAINF - Departamento de Informática
DAINF - Departamento de Informática Algoritmos 2 - Árvore binária de busca Prof. Alex Kutzke ( http://alex.kutzke.com.br/courses ) 30 de Novembro de 2015 Slides adaptados do material produzido pelo Prof.
Projeto e Análise de Algoritmos
Projeto e Algoritmos Pontifícia Universidade Católica de Minas Gerais [email protected] 26 de Maio de 2017 Sumário A complexidade no desempenho de Quando utilizamos uma máquina boa, ela tende a ter
O Problema da Ordenação Métodos de Ordenação Parte 1
Métodos de Ordenação Parte 1 SCC-201 Introdução à Ciência da Computação II Rosane Minghim 2010 Ordenação (ou classificação) é largamente utilizada Listas telefônicas e dicionários Grandes sistemas de BD
3. Conteúdo de um vértice v é conteúdo dos filhos de v.
Árvore Hierárquica Em inglês é chamada de Heap. Representar: conjunto C de elementos com relação. Operações: Ins x,c (inserir x em C e ExMax C (extrair o máximo do conjunto). Chamado também de Fila de
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
PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação
UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE COMPUTAÇÃO BACHARELADO EM GESTÃO DA INFORMAÇÃO PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação ( X ) SEMESTRAL - ( ) ANUAL CÓDIGO: GGI026 PERÍODO:
Filas de Prioridades Letícia Rodrigues Bueno
Filas de Prioridades Letícia Rodrigues Bueno UFABC Heaps Heaps: lista linear com chaves s 1,..., s n com propriedade s i s i/2, para 1 < i < n; Heaps Heaps: lista linear com chaves s 1,..., s n com propriedade
Aula 13: Listas encadeadas (estruturas lineares)
Algoritmos e Estruturas de Dados I Aula 13: Listas encadeadas (estruturas lineares) Prof. Jesús P. Mena-Chalco [email protected] 1Q-2017 1 Estruturas (alguns autores usam o termo registro) 2 Linguagem
Aula 19 Árvores Rubro-Negras
Algoritmos e Estruturas de Dados I Aula 19 Árvores Rubro-Negras Prof. Jesús P. Mena-Chalco [email protected] Q1-2017 1 Árvores de Busca Binária Por que ABBs? São estruturas eficientes de busca (se
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
Linguagem C: Algoritmos de Ordenação
Introdução Prof. Paulo R. S. L. Coelho [email protected] Faculdade de Computação Universidade Federal de Uberlândia GEQ007 Organização Introdução 1 Introdução 2 3 Organização Introdução 1 Introdução 2
Classificação e Pesquisa Aula 6 Métodos de Ordenação: ShellSort e QuickSort. Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional
Classificação e Pesquisa Aula 6 Métodos de Ordenação: ShellSort e QuickSort Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Plano de Ensino e Aprendizagem ( PEA) Algoritmo ShellSort Proposto por
