Escolar Documentos
Profissional Documentos
Cultura Documentos
(Note que a funo est correta mesmo quando p > r, ou seja, quando o vetor est
vazio.)
Exerccios 3
1. Que acontece se trocarmos p < r por p != r na linha 2 do quicksort?
2. Que acontece se trocarmos j-1 por j na linha 4 do quicksort? Que acontece se
trocarmos j+1 por j na linha 5 do cdigo?
3. Submeta o vetor 77 55 33 99 indexado por 1..4 funo quicksort. Teremos
a seguinte sequncia de invocaes da funo (observe a indentao):
4. quicksort( v,1,4)
5.
quicksort( v,1,2)
6.
quicksort( v,1,0)
7.
quicksort( v,2,2)
8.
quicksort( v,4,4)
24.
25. }
Animaes do Quicksort
Animao do Quicksort produzida por Mike Bostock (veja tambm uma visualizao
esttica, uma variante, e uma outra forma de visualizao).
Sorting Algorithms Animation by David R. Martin.
Demonstrao animada do Quicksort, copiada da pgina da disciplina COS226 de
R. Sedgewick (Universidade de Princeton).
Animao de algoritmos de ordenao de Nicholas Andr Pinho de Oliveira.
Quick-sort with Hungarian (Kkllmenti legnyes) folk dance, created at Sapientia
University (Romania).
log n .
18.
19.
20.
21.
22. }
}
quick_FlipFlop( v, p, i-1);
quick_FlipFlop( v, i+1, r);
}
23. A verso abaixo (veja livro de Cormen, Leiserson e Rivest) comea por rearranjar
v[p..r] de modo que v[p..j] v[j+1..r] e p j < r (compare com o
resultado da separao feita acima). Note que os vetores v[p..j] e v[j+1..r] so
ambos estritamente menores que o vetor original.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43. Eis outra implementao. (Se no me engano, ela est no livro de Sedgewick.)
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
70.
71.
72.
73.
74.
75.
76.
77.