8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
1/29
Kcabvlx`b~hjBvhjekb7[zlnd^bvx
NjexvbhjLeobv`-nk
Zeljv~lhkhjOjhjvkchjYjvek`fznb
^l~xj`k~hjLeobv`kb
_lelnlz~Nkvhb~bAkvnlk
naInle%zoyj%fv
69;;_lelnlz~Nkvhb~bAkvnlk
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
2/29
[zlnd^bvx
Klhlkhb{zlnd~bvxxj`nb`bfk~jhbl~yvlenylb~#k~~l`nb`bb`jvaj~bvx7
Vjnzv~b Kfbvhkaj`hllhlvykvknbe{zl~xkv
Kcabvlx`b~jJ~xvzxzvkhjHkhb~Kcabvlx`bhjBvhjekb7[zlnd^bvx69;;_lelnlz~Nkvhb~bAkvnlk
6
;% Hllhlv b yvbfcj`k j` ~zfyvbfcj`k~ -`jebvj~,
6% Vj~bcjv j~xk~ ebk~ le~xenlk~ -vjnzv~lk`jexj,
>% Gzexkv k~ ~bczj~ ykvnlkl~ ykvk knmkv k ~bczbhb yvbfcj`k yvlenlykc%
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
3/29
[zlnd^bvx
B[zld~bvxz`kcabvlx`bhjbvhjek`jexb{zjebylbvnk~b-e6,
Nbexzhb#ekyv-nk#ajvkc`jexjk`jcmbvbyb+ Hjlhbk~zkkcxkjnlenlkebnk~b`hlb7-ecae,
Bkcabvlx`b[zlnd~bvxz-clwkkx-nkhjhllhlvjnbe{zl~xkv
J~xkx-nkhllhlhkj`xv~ykvxj~ykvkkvjkclwkbhbbvhjek`jexbhbkvvkegbKTy%%vP
Kcabvlx`b~jJ~xvzxzvkhjHkhb~Kcabvlx`bhjBvhjekb7[zlnd^bvx69;;_lelnlz~Nkvhb~bAkvnlk
>
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
4/29
HllhlvykvkNbe{zl~xkv
Hllhlv7 KTy%%vPykv-nlbekhbj`hbl~~zfkvvkegb~#KTy%%{;PjKT{
$;%%vP
Nkhkjcj`jexbhjKTy%%{;P`jebvbzlazkc{zjKT{P% KT{P`jebvbzlazkckxbhb~b~jcj`jexb~hjKT{$;%%vP Behlnj{nkcnzckhbnb`bykvxjhbyvbnjhl`jexbhj
ykv-nlbek`jexb
Kcabvlx`b~jJ~xvzxzvkhjHkhb~Kcabvlx`bhjBvhjekb7[zlnd^bvx69;;_lelnlz~Nkvhb~bAkvnlk
8
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
5/29
HllhlvykvkNbe{zl~xkv
Nbe{zl~xkv7 B~hbl~~zfkvvkegb~KTy%%{;PjKT{$;%%vP~b
bvhjekhb~ybvnmk`khk~vjnzv~lk~kb{zld~bvx
Nb`flekv7 B~kvvkegb~~bbvhjekhb~cbnkc`jexj+ Ebmxvkfkcmbykvknb`flecb7BkvvkegbK
Ty%%vPj~xlexjlvk`jexjbvhjekhb+
Kcabvlx`b~jJ~xvzxzvkhjHkhb~Kcabvlx`bhjBvhjekb7[zlnd^bvx69;;_lelnlz~Nkvhb~bAkvnlk
:
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
6/29
[zlnd^bvx
J`nkhklxjvkbj~nbcmkz`kyb~lbhb~zfkvvkegbyl,7ky
Klhlkf~lnkbvakelwkvb~jcj`jexb~hb~zfkvvkegbhjobv`k{zj7 Xbhb~b~jcj`jexb~kj~{zjvhkhjk
d~b`jebvj~bz
lazkl~kky
Xbhb~b~jcj`jexb~khlvjlxkhjkd~b`klbvj~{zjky Behjdkyb~lbnbvvjxkhbyl
Vjyj-vbyvbnj~~bykvkb~zfkvvkegbkj~{zjvhkhjd#jykvkb~zfkvvkegbkhlvjlxkhjd
?Kcabvlx`b~jJ~xvzxzvkhjHkhb~Kcabvlx`bhjBvhjekb7[zlnd^bvx69;;_lelnlz~Nkvhb~bAkvnlk
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
7/29
[zlnd~bvxY~jzhbNhlab
Ykvkbvhjekvz`kvvkegbK#nmk`khblelnlkc`jexjkozeb[ZLND^BVX-K#;#nb`yvl`jexbTKP,
J`y|xmbe#~jvlkhj9kxnb`yvl`jexbTKP;
Kcabvlx`b~jJ~xvzxzvkhjHkhb~Kcabvlx`bhjBvhjekb7[zlnd^bvx69;;_lelnlz~Nkvhb~bAkvnlk
1
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
8/29
NB@BOZENLBEKBYKVXLNLBEK@JEXB222
=Kcabvlx`b~jJ~xvzxzvkhjHkhb~Kcabvlx`bhjBvhjekb7[zlnd^bvx69;;_lelnlz~Nkvhb~bAkvnlk
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
9/29
Kcabvlx`b~jJ~xvzxzvkhjHkhb~Kcabvlx`bhjBvhjekb7[zlnd^bvx69;;_lelnlz~Nkvhb~bAkvnlk
> ; : 6 1 = ? 8
Nbe6ezk
> ; : 6 1 = ? 8 ;%J~nbcmjbyl
6%;Kehknb`cjcj
vlamx
cj cj
vlamxvlamxvlamx
> ; 6 : 1 = ? 86%>~qkycj#vlamx,jvjyjxj6%;
vlamx cj
> ; : 6 1 = ? 8
6%6Kehknb`vlamx
> ; 6 : 1 = ? 8
vlamxvlamx
6%>^klhbcbbyj~qkyyl#cj,
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
10/29
Ykv\nlbek`jexb
Kabvk{zjbylj~xekyb~lbnbvvjxkhjj`b~nmk`kvvjnzv~lk`jexjb~bvxykvkbkvvkegbhkj~{zjvhkjj`~jazlhkykvkbkvvkegbhkhlvjlxk
;9
> ; : 6 1 = ? 8
> ; 6 8 1 = ? :
Kcabvlx`b~jJ~xvzxzvkhjHkhb~Kcabvlx`bhjBvhjekb7[zlnd^bvx69;;_lelnlz~Nkvhb~bAkvnlk
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
11/29
Kcabvlx`b~jJ~xvzxzvkhjHkhb~Kcabvlx`bhjBvhjekb7[zlnd^bvx69;;_lelnlz~Nkvhb~bAkvnlk
;;
> ; 6 8 1 = ? : >Bvhjek~zfkvvk|kj~{zjvhkvjnzv~%,
> ; 6 8 1 = ? :
%%%
; 6 > 8 1 = ? :
; 6 > 8 1 = ? : 8Bvhjek~zfkvvk|khlvjlxkvjnzv~%,
%%%
; 6 > 8 : ? 1 =
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
12/29
Kcabvlx`b~jJ~xvzxzvkhjHkhb~Kcabvlx`bhjBvhjekb7[zlnd^bvx69;;_lelnlz~Nkvhb~bAkvnlk
;6
9 :9 19
9 :9 19
:9 ;99 69 ?9 =9 ;;9 ;69 89 ;9 >9 9 69 ?9 =9 ;;9 ;69 89 ;9 ;99 9 69 ?9 ;9 ;;9 ;69 89 =9 ;99 9 69 ?9 ;9 89 ;69 ;;9 =9 ;99 9 69 ?9 ;9 89 19 ;;9 =9 ;99
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
13/29
Kcabvlx`b~jJ~xvzxzvkhjHkhb~Kcabvlx`bhjBvhjekb7[zlnd^bvx69;;_lelnlz~Nkvhb~bAkvnlk
;>
:9 >9 69 ?9 ;9 89 19 ;;9 =9 ;99 9 69 ?9 ;9 89 19 ;;9 =9 ;99 9 69 ?9 :9 89 19 ;;9 =9 ;99 9 69 89 :9 ?9 19 ;;9 =9 ;99 9 69 89 :9 ?9 19 ;;9 =9 ;99 9 69 89 :9 ?9 19 ;;9 =9 ;99 9 89 :9 ?9 19 ;;9 =9 ;99
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
14/29
Kcabvlx`b~jJ~xvzxzvkhjHkhb~Kcabvlx`bhjBvhjekb7[zlnd^bvx69;;_lelnlz~Nkvhb~bAkvnlk
;8
;9 69 >9 89 :9 ?9 19 ;;9 =9 ;99 9 89 :9 ?9 19 ;;9 =9 ;99 9 89 :9 ?9 19 ;;9 =9 ;99 9 89 :9 ?9 19 ;;9 =9 ;99 9 89 :9 ?9 19 ;;9 =9 ;99 9 89 :9 ?9 19 ;;9 =9 ;99
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
15/29
Kcabvlx`b~jJ~xvzxzvkhjHkhb~Bvhjekb69;;_lelnlz~Nkvhb~bAkvnlk
;:
;9 69 >9 89 :9 ?9 19 ;;9 =9 ;99 9 89 :9 ?9 19 ;;9 =9 ;99 9 89 :9 ?9 19 ;;9 =9 ;99 9 89 :9 ?9 19 ;;9 =9 ;99 9 89 :9 ?9 19 =9 ;;9 ;99 9 89 :9 ?9 19 =9 9 89 :9 ?9 19 =9
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
16/29
Kcabvlx`b~jJ~xvzxzvkhjHkhb~Bvhjekb69;;_lelnlz~Nkvhb~bAkvnlk
;?
;9 69 >9 89 :9 ?9 19 =9 9 89 :9 ?9 19 =9 9 89 :9 ?9 19 =9 9 89 :9 ?9 19 =9
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
17/29
Ykv\nlbek`jexbhbKvvkegb
BYvbnjhl`jexbYKVXLXLBEbvakelwkb~zfkvvkegbKTy%%vPcbnkc`jexj
Kcabvlx`b~jJ~xvzxzvkhjHkhb~Kcabvlx`bhjBvhjekb7[zlnd^bvx69;;_lelnlz~Nkvhb~bAkvnlk
;1
lexykv-nlbeklexTPk#lexcj#lexvlamx#lexylb,t
lexyb~Ylb0vlamx4
qmlcjxvzj,t qmlcjkTcjP3ylb,cj$$4
qmlcjvlamx509//kTvlamxP5ylb,vlamx4
locj50vlamx,fvjkd4
jc~j~qkyk#cj#vlamx,4
p~qkyk#cj#yb~Ylb,4
vjxzvecj4
p
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
18/29
Kekcl~kehbbY~jzhbNhlab
Cbbylekvlkexj7 yb~~jcjezenlkvz`cbbylekvlkexjjexvjk~
clemk~>j?hby~jzhbnhlab
Yvbyvljhkhj~7 ^jydl#jexbKTdP} ^jL$;dg-;#jexbKTdP5} ^jd0v#jexbKTdP0}
Kcabvlx`b~jJ~xvzxzvkhjHkhb~Kcabvlx`bhjBvhjekb7[zlnd^bvx69;;_lelnlz~Nkvhb~bAkvnlk
;=
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
19/29
Kekcl~kehbbY~jzhbNhlab
Lelnlkclwkb7 Kexj~hkyvl`jlvklxjvkb
l0y;g0y
Ebmejemz`e`jvbjexvjyjl#jjexvjl$;jg;
K~hzk~yvl`jlvk~yvbyvljhkhj~~b~k\~ojlxk~ Kkxvlfzlbekclemk;
Kxjvnjlvkyvbyvljhkhj~k\~ojlxk+
Kcabvlx`b~jJ~xvzxzvkhjHkhb~Kcabvlx`bhjBvhjekb7[zlnd^bvx69;;_lelnlz~Nkvhb~bAkvnlk
;
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
20/29
Kekcl~kehbbY~jzhbNhlab
@kezxjeb J}l~xj`hbl~nk~b~knbe~lhjvkv#hjyjehjehbhb
xj~xjhkclemk87
^jKTgP5} Kelnkkbhbcbbylenvj`jexkvg-k~yvbyvljhkhj~
nbe\ezk`clhk~,
Kcabvlx`b~jJ~xvzxzvkhjHkhb~Kcabvlx`bhjBvhjekb7[zlnd^bvx69;;_lelnlz~Nkvhb~bAkvnlk
69
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
21/29
Kekcl~kehbbY~jzhbNhlab
@kezxjeb J}l~xj`hbl~nk~b~knbe~lhjvkv#hjyjehjehbhb
xj~xjhkclemk87
^jKTgP} KTlPjKTgP~byjv`zxkhb~jjexbglenvj`jexkhb K~~l`#nk7KTlP}-yvbyvljhkhj;~k\~ojlxk, KTg;P5}-yvbyvljhkhj6~k\~ojlxk,
Kcabvlx`b~jJ~xvzxzvkhjHkhb~Kcabvlx`bhjBvhjekb7[zlnd^bvx69;;_lelnlz~Nkvhb~bAkvnlk
6;
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
22/29
Kekcl~kehbbY~jzhbNhlab
Xv`leb7g0v
Xbhkkjexvkhkebkvvkegbyb~j~jvnck~~lnkhkj`z`hb~xv~nbegzexb~hjelhb~yjcbcbbylekvlkexj
Z`nbegzexbnb`xbhb~b~jcj`jexb~`jebvj~{zj} Z`nbegzexbnb`xbhb~b~jcj`jexb~`klbvj~{zj} Z`nbegzexbzelxvlbnbexjehj}
Kcabvlx`b~jJ~xvzxzvkhjHkhb~Kcabvlx`bhjBvhjekb7[zlnd^bvx69;;_lelnlz~Nkvhb~bAkvnlk
66
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
23/29
Hj~j`yjembhb[zld~bvx
Bykv-nlbek`jexbxj`nz~xb-e,
Ykv-nlbek`jexbebylbvnk~b ^byvbhzwlhb~hbl~~zfyvbfcj`k~7z`nb`e;
jcj`jexb~jz`nb`wjvbjcj`jexb~%
Ajvk~jkvjnzv~b7
B{zj~laelnkX-e,0-e6,
Kcabvlx`b~jJ~xvzxzvkhjHkhb~Kcabvlx`bhjBvhjekb7[zlnd^bvx69;;_lelnlz~Nkvhb~bAkvnlk
6>
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
24/29
Hj~j`yjembhb[zld~bvx
Ykv-nlbek`jexbhb`jcmbvnk~b7 ^byvbhzwlhb~hbl~~zfyvbfcj`k~eb`klbvj~
{zje"6
^jehbz`e"6jbbzxvbe"6; Ajvk~jkvjnbvvenlk7
B{zj~laelnkX-e,0B-ecae,Kcabvlx`b~jJ~xvzxzvkhjHkhb~Kcabvlx`bhjBvhjekb7[zlnd^bvx69;;_lelnlz~Nkvhb~bAkvnlk
68
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
25/29
Hj~j`yjembhb[zld~bvx
Ykv-nlbek`jexbfkckenjkhbNk~b`hlb Ebnk~b`hlb#bkcabvlx`b{zlnd~bvx~jkyvb}l`k
`zlxb`kl~hb`jcmbvnk~bhb{zjhbylbvnk~b+
^zybemk{zjbykv-nlbek`jexj~j`yvjyvbhzwkz`khll~byvbybvnlbekchj
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
26/29
Hj~j`yjembhb[zld~bvx
Kcabvlx`b~jJ~xvzxzvkhjHkhb~Kcabvlx`bhjBvhjekb7[zlnd^bvx69;;_lelnlz~Nkvhb~bAkvnlk
6?
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
27/29
_jv~bKcjkxvlkhb[zlnd~bvx
Bnk~b`hlb~laelnkz`ykv-nlbek`jexb`hlb
K~~l`~jakvke-v`b~{zjbykvnlbek`jexb`hlbj~xjgkfkckenjkhb#xk`f`akvke-`b~{zjek
`hlbbnz~xbhb{zlnd~bvx~jvB-ecae,
Ykvkxkckcjkxbvlwk~jkj~nbcmkebyl
Kcabvlx`b~jJ~xvzxzvkhjHkhb~Kcabvlx`bhjBvhjekb7[zlnd^bvx69;;_lelnlz~Nkvhb~bAkvnlk
61
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
28/29
[zlnd^bvx
B{zlnd~bvx`kl~jnljexjhb{zjb`jvaj~bvxek`klbvykvxjhb~nk~b~%
Ebjexkexb#ykvkz`k~j{enlklejv~k`jexjbvhjekhkb{zlnd~bvxhj`bvk`zlxb`kl~{zjb jvaj~bvx%J~~jbylbvnk~b#ybvxkexb#knb`ycj}lhkhjhb{zlnd~bvxBe,+
B{zlnd~bvxybyzckvybl~z`k~j{enlklejv~k`jexjbvhjekhkhlsnlchjbnbvvjv%Ybvxkexb#ek`klbvlkhk~jwj~~jvlk`jcmbvz~kvb{zlnd~bvx%
6=Kcabvlx`b~jJ~xvzxzvkhjHkhb~Kcabvlx`bhjBvhjekb7[zlnd^bvx69;;_lelnlz~Nkvhb~bAkvnlk
8/4/2019 If969 - Algoritmos de Ordenao: Quick Sort
29/29
K\lhkhj~nb`ycj`jexkvj~
L`ycj`jexjb[zlnd~bvxj`Y|xmbe K`fk~k~jv~j~ebv`kcjkcjkxvlk,
Cjlxzvkhbnkyxzcb1hbNbv`je
Vj~bckbyvbfcj`khbclvbhbNbv`je 1;ya%;6