Buscar

AEDII-aula05

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
Aula 05 – Ordenação parcial
MC3305
Algoritmos e Estruturas de Dados II
Prof. Jesús P. Mena-Chalco
jesus.mena@ufabc.edu.br
2Q-2014
2
Ordenação
Ordenar corresponde ao processo de re-arranjar um 
conjunto de objetos em ordem ascendente ou descendente.
O objetivo principal da ordenação é facilitar a recuperação 
posterior de itens do conjunto ordenado.
Diversos algoritmos de ordenação já foram estudados e 
implementados...
3
Ordenação
Limite assintótico para algoritmos de ordenação baseadas 
em comparações
A ordenação em tempo linear está associada a algoritmos 
que não consideram comparações entre seus elementos
4
Ordenação parcial
5
Ordenação parcial (seleção do k-éssimo maior)
Consiste em obter os k primeiros elementos de um 
arranjo/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.
6
Ordenação parcial (aplicação)
7
Ordenação parcial (aplicação)
Facilitar a busca de informação na web com as máquinas de 
busa:
É comum uma consulta na web retornar centenas de 
milhares de documentos relacionados com a consulta.
O usuário está interessado em apenas os k mais 
relevantes.
Em geral k<200 documentos.
Normalmente são consultados os 10 primeiros 
documentos.
Assim, são necessários algoritmos de ordenação 
parcial.
8
Ordenação parcial
Os algoritmos de Ord. Parcial que estudaremos serão:
Seleção parcial
Inserção parcial
Heapsort parcial
Quicksort parcial
9
Seleção parcial
10
Seleção parcial
Um dos algoritmos mais simples.
Principio de funcionamento:
Selecione o menor item do vetor.
Troque-o com o item que está na primeira posição do 
vetor.
Repita estas duas operações com os itens:
n-1, n-2, n-3, …, n-(k-1), n-k
Animação: https://www.cs.usfca.edu/~galles/visualization/ComparisonSort.html
11
Seleção parcial
12
Seleção parcial
k=7
13
Seleção parcial
Identifique o número de: 
 - Comparações entre elementos
 - Movimentações entre registros
14
Seleção parcial
Identifique o número de: 
 - Comparações entre elementos
 - Movimentações entre registros
Espetacular: Comportamento linear no tamanho de k!
15
Seleção parcial
É “muito” simples de ser obtido a partir da implementação do 
algoritmo de ordenação por seleção.
Possui um comportamento espetacular quanto ao número de 
movimentos de registros:
Tempo de execução é linear no tamanho de k.
16
Inserção parcial
17
Inserção parcial
Pode ser obtido a partir do algoritmo de ordenação por 
Inserção por meio de uma modificação:
Tendo sido ordenado os primeiros k itens, o item da k-
essima posição funciona como um pivô.
Quando o item entre os restantes é menor do que o pivô, 
ele é inserido na posição correta entre os k itens de 
acordo com o algoritmo original.
18
Inserção
Animação: https://www.cs.usfca.edu/~galles/visualization/ComparisonSort.html
Método preferido dos jogadores de cartas
Em cada passo, a partir do i=2, o I-ésimo elemento 
da sequência fonte é apanhado e transferido para a 
sequência destino, sendo inserido no seu lugar 
apropriado.
1 5 7 10 55 6
1 5 7 10 55
6
19
Inserção
1 5 7 10 55
6
i=5j=[0,4]
20
Inserção parcial
1 5 7 10 557
i>(k-1)
0 1 2 3 4 5 6 7 8 9 10 11 12
i<=(k-1)
k=6
21
Inserção parcial
1 5 7 10 55
k=6
7
i>(k-1)
0 1 2 3 4 5 6 7 8 9 10 11 12
i<=(k-1)
1 5 7 10 557 -1
i>(k-1)i<=(k-1)
0 1 2 3 4 5 6 7 8 9 10 11 12
22
Inserção parcial
23
Inserção parcial
k=6
24
Inserção parcial
k=6
O algoritmo não preserva o restante do vetor
25
Inserção parcial
- Comparações entre elementos: (melhor caso e pior caso) ?
- Movimentações entre registros: (melhor caso e pior caso) ?
26
Inserção parcial
Comparações entre elementos: 
 - Melhor caso 
 - Pior caso
← n-1 iterações
27
Inserção parcial
Movimentações entre elementos: 
 - Melhor caso 
 - Pior caso
← 1 movimentação
← 1 movimentação
← 1 movimentação
28
Inserção parcial 2 (preserva o restante do vetor)
29
Inserção parcial 2 (preserva o restante do vetor)
k=6
Versão 1
Versão 2
k=6
30
Heapsort parcial
31
Inserção parcial
Utiliza um tipo abstrato de dados heap para informar o menor 
item do conjunto.
Usando um MIN-HEAP
Na primeira iteração, o menor item que está 
em A[0] (raiz do heap) é trocado com o item 
que está em A[n-1].
Em seguida o heap é refeito.
Novamente o menor está em A[0], troque-o 
com A[n-1].
Repita as duas últimas operações até que o k-
ésimo menor esteja seja trocado com A[n-k].
Ao final, os k menores estão nas k últimas 
posições do vetor A.
Animação: https://www.cs.usfca.edu/~galles/visualization/HeapSort.html
32
Inserção parcial
O heapsort-Parcial deve construir o heap a um custo O(n).
O prodecimento Refaz tem um custo de O(lg(n)).
O procedimento heapsort parcial chama o procedimento 
anterior k vezes.
Complexidade: 
33
Quicksort parcial
34
Atividade QuickSort Parcial (18/julho - 23h50)
Implemente o algoritmo Quicksort parcial
http://www2.dcc.ufmg.br/livros/algoritmos-edicao2/cap4/transp/completo1/cap4.pdf
Os arquivos que deverá submeter pelo Tidia são:
Código fonte em C/C++
(quicksortParcial-RA.cpp)
Um PDF contendo um exemplo de execução 
(quicksortParcial-RA.pdf)
Nota: o formato desse relatório é livre. Quando mais completo, melhor.
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 33
	Slide 34

Continue navegando