Documente Academic
Documente Profesional
Documente Cultură
DEPARTAMENTO DE INFORMÁTICA
Quicksort – ordenação
rápida
Prof. Yandre Maldonado - 1
Troca (bolha);
Eficientes:
Shell (ou shellsort);
Quick (ou quicksort);
Heap (ou heapsort).
conquistar”;
Dividir um problema em
subproblemas menores e combinar as
soluções a fim de se obter a solução
do problema original;
1
Quicksort – ordenação rápida
S2;
Isto feito, o mesmo processo é aplicado às
seqüências S1 e S2, que por sua vez
produzirão novos segmentos;
O processo deve ser aplicado
sucessivamente às seqüências enquanto
elas tiverem tamanho ≥ 1.
Exemplo de ordenação:
Como pivô inicial, o ideal seria adotar a
chave mediana da seqüência;
Entretanto, supondo que a seqüência deve
estar distribuída aleatoriamente, será
adotado o primeiro elemento da seqüência
como pivô, inicialmente ele é copiado para
Prof. Yandre Maldonado - 5
Exemplo de ordenação:
Observe ao lado direito do vetor o valor da
variável “lado”, que pode ser:
• e – quando a primeira posição à esquerda estiver
vazia; ou
• d – quando a última posição à direita estiver
vazia;
Prof. Yandre Maldonado - 6
2
Quicksort – ordenação rápida
0 1 2 3 4 5 6 7 8 lado
x 50
5 27 88 43 91 71 51 48 e
↑ ↑
I F
0 1 2 3 4 5 6 7 8 lado
x 50
48 5 27 88 43 91 71 51 d
↑ ↑
I F
0 1 2 3 4 5 6 7 8 lado
x 50
48 5 27 88 43 91 71 51 d
↑ ↑
I F
3
Quicksort – ordenação rápida
0 1 2 3 4 5 6 7 8 lado
x 50
48 5 27 88 43 91 71 51 d
↑ ↑
I F
0 1 2 3 4 5 6 7 8 lado
x 50
48 5 27 43 91 71 51 88 e
↑ ↑
I F
0 1 2 3 4 5 6 7 8 lado
x 50
48 5 27 43 91 71 51 88 e
↑ ↑
I F
4
Quicksort – ordenação rápida
0 1 2 3 4 5 6 7 8 lado
x 50
48 5 27 43 91 71 51 88 e
↑ ↑
I F
0 1 2 3 4 5 6 7 8 lado
x 50
48 5 27 43 91 71 51 88 e
↑ ↑
I F
48 5 27 43 91 71 51 88 d
↑ ↑
I F
0 1 2 3 4 5 6 7 8
48 5 27 43 50 91 71 51 88
↑ ↑
I F
5
Quicksort – ordenação rápida
0 1 2 3 4 5 6 7 8
48 5 27 43 50 91 71 51 88
↑ ↑
I F
S1 S2
representação.
0 1 2 3 4 5 6 7 8
5 27 43 50 71 51 88
↑ ↑ ↑ ↑
I F I F
lado lado
x 48 x 91
e e
representação.
0 1 2 3 4 5 6 7 8
43 5 27 50 88 71 51
↑ ↑ ↑ ↑
I F I F
lado lado
x 48 x 91
d d
6
Quicksort – ordenação rápida
representação.
0 1 2 3 4 5 6 7 8
43 5 27 50 88 71 51
↑ ↑ ↑ ↑
I F I F
lado lado
x 48 x 91
d d
representação.
0 1 2 3 4 5 6 7 8
43 5 27 50 88 71 51
↑ ↑ ↑ ↑
I F I F
lado lado
x 48 x 91
d d
representação.
0 1 2 3 4 5 6 7 8
43 5 27 48 50 88 71 51 91
S3 S4
7
Quicksort – ordenação rápida
representação.
0 1 2 3 4 5 6 7 8
5 27 48 50 71 51 91
↑ ↑ ↑ ↑
I F I F
lado lado
x 43 e x 88 e
representação.
0 1 2 3 4 5 6 7 8
27 5 48 50 51 71 91
↑ ↑ ↑ ↑
I F I F
lado lado
x 43 d x 88 d
representação.
0 1 2 3 4 5 6 7 8
27 5 48 50 51 71 91
↑ ↑ ↑ ↑
I F I F
lado lado
x 43 d x 88 d
8
Quicksort – ordenação rápida
representação.
0 1 2 3 4 5 6 7 8
27 5 43 48 50 51 71 88 91
S5 S6
representação.
0 1 2 3 4 5 6 7 8
5 43 48 50 71 88 91
↑ ↑ ↑ ↑
I F I F
lado lado
e x 27 x 51 e
representação.
0 1 2 3 4 5 6 7 8
5 43 48 50 71 88 91
↑ ↑ ↑ ↑
I F I F
lado lado
d x 27 x 51 e
9
Quicksort – ordenação rápida
0 1 2 3 4 5 6 7 8
5 27 43 48 50 51 71 88 91
Prof. Yandre Maldonado - 28
S7 S8
Seqüência de tamanho = 1
0 1 2 3 4 5 6 7 8
5 27 43 48 50 51 71 88 91
Prof. Yandre Maldonado - 29
Fim da execução!
Desempenho do Quicksort:
Médio: O (n log n);
Pior caso: pode chegar a O (n2);
• Esta variação ocorre em função da
escolha aleatória do pivô inicial;
Prof. Yandre Maldonado - 30
10
Bibliografia
Azeredo, P. A. Métodos de Classificação de
Dados e Análise de suas Complexidades. Rio
de Janeiro: Editora Campus, 1996;
Goodrich e Tamassia. Projeto de Algoritmos.
Porto Alegre: Bookman, 2002;
Celes, W; Cerqueira, R. e Rangel, J. L.
Introdução a Estruturas de Dados. Rio de
Prof. Yandre Maldonado - 31
11