!
"#$%
"#$&
'
(
)
*
+
,
+
- )
.
- )
.
. / (
0
(
/ 0
. ( 1 (
3 + 4 , 5"+ 5& 5
-5& / 6 ! " / #
5" / 6 / / $% $
&'!"& # 7 , 6 ( 5&
5 / 6 / / "& $
4
5- / 6 / / "& $
# 7 , 6 ( 5&
-* , 5" 5
-, 8 /
"& "
9 , + )
, .
9 /: ;
* /: < , 5"
5-= , . / /
) /: /
)8 )
> ( 6
6
> ( 6
5 / / / +
1 ( /: ( + = +
" 7 /: / 0
& 1 .
/?"@+ /?&@+ /? @A / + /
/ 9 /? @ BC / BA B D"
+ ) + /? ("@+/? (&@+
/? @CB / 9 /? @ A / BA B E "
9 /? @A / /? @CB / + ( /? @ /? @+
B D" B ("
- + < F
+ ) / / ) + / /
/? @ 0
G * < , /
5 ) , /
/ ?#+ &H+ "%+ "I+ H+ J+ "H+ -@
/ / /
? @
/ ? @
* / 1 .
% " & - G H $ J
# &H "% "I H J "H - # " J &H - &HA# -CB#
"
+ , - + ,
.
# - "% "I H J "H &H # & $ "% "H "%A# "HCB#
# - "% "I H J "H &H # & $ "% "H "%A# "HCB#
.
# - "% "I H J "H &H # & H "% J "%A# JCB#
"
+ , - + ,
.
# - J "I H "% "H &H # - G "I H "IA# HCB#
"
5 ) , /
/ ?#+ &H+ "%+ "I+ H+ J+ "H+ -@
/ / /
? @
/ ? @
* / 1 .
% " & - G H $ J
# - J H "I "% "H &H # G - "I H <
"
10
- + ,
H - J # "I "% "H &H
5" 5& 5
-% " &
H - J
-#
G H $ J
"I "% "H &H
5"+ 5& 5- ,
5" / /
? @
/ ? @
* / 1 .
% " &
H - J H " & - J -AH JCBH
.
H - J H & " J - <
" "
- + ,
5- / /
? @
/ ? @
* / 1 .
G H $ J
"I "% "H &H "I H J "% &H "%A"I &HCB"I
.
"I "% "H &H "I $ $ "H "H "HA"I "H CB"I
.
12
.
"I "% "H &H "I J $ &H "H <
"
- + ,
"H "% "I &H 5H 5$ L
5G 5H 5$
5 ) , /
/ ?#+ &H+ "%+ "I+ H+ J+ "H+ -@
5G / /
? @
/ ? @
* / 1 .
G H
"H "% "H H H "% "% "%A"H "%CB"H
. .
"H "% "H $ H M "% <
"
- + ,
"% "H 5G 6 L
5 ) ,
/ / /
? @
/ ? @
* / 1 .
% " & - G H $ J
&H GI #& -J "& HJ I$ -- &H " J GI -- GIA&H --CB&H
.
&H GI #& -J "& HJ I$ -- &H " $ GI I$ GIA&H --CB&H
.
&H GI #& -J "& HJ I$ -- &H " H GI HJ GIA&H HJCB&H
16
&H GI #& -J "& HJ I$ -- &H " H GI HJ GIA&H HJCB&H
.
&H "& #& -J GI HJ I$ -- &H " G GI "& GIA&H "&CB&H
"
+ , - + ,
.
&H "& #& -J GI HJ I$ -- &H & - #& -J #&A&H -JCB&H
/ / /
? @
/ ? @
* / 1 .
% " & - G H $ J
&H "& #& -J GI HJ I$ -- &H & & #& #& #&A&H #&CB&H
.
&H "& #& -J GI HJ I$ -- &H & " #& GI <
" "
- + ,
"& &H #& -J GI HJ I$
--5" 5& 5
-% "&
" &H
& - G H $ J
#& -J GI HJ I$
--5"+ 5& 5- ,
K "
5- / /
? @
/ ? @
* / 1 .
& - G H $ J
#& -J GI HJ I$ -- #& - J -J -- -JA#& --CB#&
.
#& -J GI HJ I$ -- #& G J GI -- GIA#& --CB#&
.
18
#& -J GI HJ I$ -- #& H J GI -- HJA#& --CB#&
.
#& -J GI HJ I$ -- #& $ J I$ -- I$A#& --CB#&
5- / /
? @
/ ? @
* / 1 .
& - G H $ J
#& -J GI HJ I$ -- #& J J -- -- --A#& --CB#&
.
-- -J GI HJ I$ #& #& I J (((( -- <
"
- + ,
5G 5H
7 5G 6 +
, L
5G / /
? @
/ ? @
* / 1 .
& - G H $
-- -J GI HJ I$ -- - $ -J I$ -JA--
I$CB--.
-- -J GI HJ I$ -- - H -J HJ -JA--
HJCB--.
20
-- -J GI HJ I$ -- - G -J GI -JA--
5G / /
? @
/ ? @
* / 1 .
& - G H $
-- -J GI HJ I$ -- - - -J -J -JA--
-JCB--.
-- -J GI HJ I$ -- - & -J -- <
"
- + ,
+ , //0
5$ 5J 7 5J 6 +
, L
5J / /
? @
/ ? @
* / 1 .
- G H $
-J GI HJ I$ -J G $ GI I$ GIA-J I$CB-J
.
-J GI HJ I$ -J G H GI HJ GIA-J HJCB-J
.
22
-J GI HJ I$ -J G G GI GI GIA-J GICB-J
.
-J GI HJ I$ -J G - GI -J <
"
- + ,
+ , /10
5I 5#
7 5# 6 +
5# / /
? @
/ ? @
* / 1 .
G H $
GI HJ I$ GI H $ HJ I$ HJAGI I$CBGI
.
GI HJ I$ GI H H HJ HJ HJAGI HJCBGI
. .
GI HJ I$ GI H G HJ GI <
"
- + ,
+ , 230
5"% 5""
7 5"" 6 +
5"" / /
? @
/ ? @
* / 1 .
H $
HJ I$ HJ $ $ I$ I$ I$AHJ I$CBHJ
.
HJ I$ HJ $ H I$ HJ <
"
24
"
- + ,
+ , 410
5"& 5"- 5
void particao(int *item, int esq, int dir){ int pivo, esq_esp, dir_esp;
esq_esp = esq; dir_esp = dir; pivo = item[esq]; while (esq < dir){
while((item[dir] >= pivo) && (esq < dir)) dir--; if(esq != dir){
item[esq] = item[dir]; esq++;
esq++; }
while((item[esq] <= pivo) && (esq < dir))esq++; if(esq != dir){
item[dir] = item[esq]; dir--;
} }
item[esq] = pivo; pivo = esq;
esq = esq_esp; dir = dir_esp;
void quick(int *item, int count){ particao(item, 0, count-1);
}