You are on page 1of 60

CHNG 1

MT S KHI NIM C BN V
CU TRC D LIU V GII THUT
Trong cc bc gii quyt mt bi ton trn my tnh, cng
on lp trnh c! "#i tr$ qu#n tr%ng nh&t'(i)c *ng +,ng tin h%c
ngy cng pht tri-n,cc yu c.u c/# th0c ti1n ngy cng #
+ng' 2i3u ! $i h4i phi thit 5 cc gii thut gii quyt mt
cch hi)u qu nh&t "&n 3 6t r#'
Trong ch7ng ny ch8ng t# 9:m 9;t mt <= 5hi ni)m c7 bn
"3 c&u tr8c +> li)u " gii thut,cc ph7ng php thit 5 gii
thut thng +,ng '
1. 1 MT S KHI NIM V CU TRC D LIU V GII
THUT
?u trnh gii quyt mt bi ton trn my tnh b#o g@m
nhi3u cng on ' Ac th* nh&t l 9c lp m hnh c/# bi
ton,t*c l 9c Bnh c&u tr8c ton h%c c/# bi ton 6t r#' Th0c t
cho th&y ,=i "i cc c7 <C th0c ti1n ngDi t# chE phc ho r# cc
yu c.u c.n gii quyt mt cch hnh th*c +i +ng cc yu c.u,
mong mu=n' Fhi)m ", c/# phGn tch "in h) th=ng l phi
chuy-n cc yu c.u r&t hnh th*c ! thnh cc c&u tr8c ch6t chH
+i +ng mt m hnh ton h%c ' I hnh ny l c7 <C - thit
5 cc bc tip th:o gii quyt bi ton bJt .u tK "i)c thit 5
c&u tr8c +> li)u, thit 5 gii thut, l0# ch%n ngn ng> +i1n t
gii thut, n "i)c thL nghi)m ch7ng trnh " phGn tch 5t qu
c/# ch7ng trnh nhMm nh gi ch&t lNng c/# ch7ng trnh'
?ui trnh gii mt bi ton trn my tnh g@m O bc Nc
bi-u +i1n trong hnh "H <#u GyP
Q
Q


1 Xy dng m hnh
2 Thit kCSDL
3 Thit kgii thut
4 Chn ngn ng l t!nh
" #it $h% &ng t!nh
' Th( nghi)m $h% &ng t!nh
* +hn t,$h kt -u
(3 bn ch&t c/# 5R thut lp trnh ,ngDi t# thDng # r#
mt Bnh nghS# ngJn g%n nh <#uP
Trogr#m< U V#t# <tructur: W Xlgorithm
Yh7ng trnh U Y&u tr8c +> li)u W Zii thut
2Bnh nghS# ny [ nu ln th0c ch&t c/# 5R thut lp trnhP
\R thut lp trnh l cng "i)c l#o ng tr tu) " <ng to trong
! cc nh lp trnh phi th0c hi)n h#i cng on qu#n tr%ngP
Yng on thit 5 c&u tr8c +> li)u
Yng on thit 5 gii thut'
]
]

(i)c 9Gy +0ng ph.n m3m l mt qu trnh ph*c tp, n! l
mt ngh) thut @ng thDi c^ng l mt 5ho# h%c'F! l mt ngh)
thut bCi " n! $i h4i tr tCng tNng t=t,!c <ng to cng thm
<0 5h;o l;o'_ mt 5ho# h%c bCi " C ! cc 5R thut " ph7ng
php tiu chu`n Nc <L +,ng'Thut ng> cng ngh) ph.n m3m
aboctd#r: engin::ringf [ Nc +gng - chE "i)c nghin c*u "
<L +,ng nh>ng 5R thut ny'Y h#i cng on 3u $i h4i tnh
<ng to r&t c#o," *ng trc mhi bi ton 6t r# ,ngDi lp trnh
phi bit l0# ch%n mt c&u tr8c +> li)u phg hNp nh&t," trn c7 <C
! tin hnh thit 5 mt gii thut hi)u qu nh&t'
!"# "$#%&

G'(' )#*+) ,-.$/0')#12 .3 14) 567 898 :*' );8 8#<) 8#= >98
?!"# 14) )0@"# )A 898 )#&/ )98 )0B" 14) ?C' )DE"$ 8F )#G ?G
$'(' :*7H) 14) IJ" ?K #/<8 ?G #/3" )#3"# 14) 1F8 ?L8# 8*C'
8M"$ "3/ ?N .
Trong tin h%c , thut ng> gii thut +gng - chE mt th/
t,c c! th- th0c hi)n Nc bMng my tnh , " i3u ny +in n
mt <= hn ch =i "i cc l)nh to nn th/ t,cP
1 O Yh8ng phi Nc 9c Bnh " 5hng nhp nhMng - c! th- bit
rj l)nh ! lm gk
P O Yh8ng phi / 7n gin - my tnh hi-u Nc
Q O Yh8ng phi 5t th8c <#u mt <= h>u hn cc ph;p ton
Yc gii thut lun lun Nc thit 5 bCi b# c&u tr8c i3u 5hi-n
<#u GyP
Y&u tr8c tu.n t0 a b:qu:nti#lf cc bc Nc th0c hi)n th:o
trnh t0 mt cch chnh 9c, mhi bc Nc th0c hi)n 8ng mt
l.n'
l
l

Y&u tr8c ch%n l%c a b:l:ction f mt trong nhi3u th#o tc Nc
ch%n " th0c hi)n'
Y&u tr8c chu trnha m:p:titionf mt h#y nhi3u bc Nc th0c
hi)n l6p li '
A# c7 ch i3u 5hi-n ch7ng trnh ny tuy 7n gin nhng
trong th0c t / mnh - 9Gy +0ng b&t c* gii thut no'
Fguyn tJc qu#n tr%ng - to r# mt ch7ng trnh c! ch&t lNng
c#o l m bo rMng ch7ng trnh phi c! c&u tr8c t=t' Iu=n "y
ch8ng t# nn th0c hi)n cc "&n 3 <#u GyP
bL +,ng ph7ng hng tip cn tK Enh 9u=ng a Top Vodn
V:<ign f - "it cc ch7ng trnh ph*c tp
bL +,ng cc c&u tr8c +i3u 5hi-n c7 bn - thit 5 cho tKng
7n th- c/# ch7ng trnha Trogr#m Io+ul:f
bL +,ng cc bin c,c ba _oc#l "#ri#bl:<f trong cc ch7ng
trnh con
bL +,ng cc th#m <= - truy3n th#m <= ' Trnh +gng cc bin
ton c,ca Zlob#l "#ri#bl:<f - truy3n th#m <= gi># cc ch7ng
trnh con , bCi " i3u ! lm ph "n tnh c lp c/# cc ch7ng
trnh con
2- ch*ng minh tnh 8ng Jn c/# mt gii thut, ch8ng t#
phi ch*ng minh mt cch <uy +i1n rMng nh>ng bc trong gii
thut 9L lo .u "o 8ng Jn " to r# .u r# th:o yu c.u' Fh
"y, mt ch*ng minh tnh 8ng Jn c/# gii thut bJt .u bMng
mt 5hpng Bnha Zi thit f "3 +> li)u "o a V#t# qnputf " +gng
cc lo lun lgic - chE r# rMng "i)c th0c hi)n gii thut <H cho t#
mt 5hpng Bnha \t lunf 8ng "3 +> li)u r# a V#t# rutputf
!"# "$#%&
s
s

M4) )+R #ER 898 R#S" )T 5U .'V* W&" ?S* )0/"$ 14) W3' )/9"
?DE8 $X' .3 5U .'V* 8Y Z[
( +, P Yh8ng t# 9:m 9;t bi ton 5inh t <#u GyP
Trong h) th=ng qun lo FgGn hng, gi <L t# c.n tnh <=
+ tit 5i)m c/# 5hch hng, 5hi bit h% tn 5hch hng, <= ti3n
gLi b#n .u, <= thng gLi " l[i <u&t hng thng' Trong trDng
hNp ny cc +> li)u c7 <C l P
t u% tn ngDi gLi
t b= ti3n gLi b#n .u
t _[i <u&t
t \v gLi
!"# "$#%&
CJ* )0\8 5U .'V* .3 ZA ]H) #ER 898 5U .'V* 8Y Z[ )#^/ 14)
R#DY"$ )#_8 "3/ ?N "#`1 .'B" ]H) 8#\"$ )#3"# 14) 8J* )0\8
)#C"$ "#J) )'V" .E' 8#/ :*9 )0@"# >T .a
(i)c l0# ch%n cc c&u tr8c +> li)u, "i)c thit lp cc gii
thut 8ng Jn c! c&u tr8c t=t " hi)u qu , l nh>ng "&n 3 m&u
ch=t c/# "i)c thit lp ph.n m3m'u#i 5h# cnh ny c/# "i)c pht
tri-n ph.n m3m c! t.m qu#n tr%ng nh nh#u, " trong th0c t
ch8ng 5hng th- tch rDi ' \hng th- n!i ti c&u tr8c +> li)u m
5hng 3 cp n cc gii thut tc ng ln cc c&u tr8c +> li)u '
FgNc li, mhi gii thut 3u lin qu#n n mt c&u tr8c +> li)u
c, th- , 5hng th- c! gii thut chung chung cho m%i c&u tr8c +>
li)u ' \hi c&u tr8c +> li)u th#y wi th gii thut c^ng phi th#y
wi cho phg hNp - c! th- 9L lo mt cch hi)u qu c&u tr8c +>
li)u &y'
O
O

2- minh ho cho o tCng ny ,ch8ng t# 9;t bi ton to
lp h@ <7 b#n .u trong phGn h) tin h%c qun lo nhGn <0 c/# mt
c7 qu#n' Zi <L mhi h@ <7 b#o g@m cc trDngP u% tn , tuwi, B#
chE, <= nxm cng tc, m*c l7ng'
Trc ht l "i)c ch%n c&u tr8c +> li)u - gii quyt bi ton' T#
c! th- ch%n Q c&u tr8c +> li)u <#u GyP
Y&u tr8c +> li)u t)p yil:
Y&u tr8c +> li)u ng 5i-u con tr4 Toint:r
Y&u tr8c +> li)u mng Xrr#y
Zii thut to lp h@ <7 b#n .u trong Q trDng hNp <H nh <#u P
T0Db"$ #ER 1P bL +,ng c&u tr8c +> li)u t)p yil:
Trogr#m Yr:#t:yil:z
Typ:
nh#n<u U r:cor+
btt P int:g:rz a{ b= th* t0 {f
uot:n P btring |Q}~z a { u% " tn { f
Tuoi P int:g:rz a { Tuwi { f
n#mct P int:g:rz a { b= nxm cng tc {f
+i#chi P btring |Q}~z a { 2B# chE {f
_uong P r:#lz a { _7ng { f
:n+z
(#r
y P cil: oc nh#n<u z
Fguoi P nh#n<u z
r\ P ch#rz
, P int:g:rz
A:gin
X<<ign a y, nh#n<u' +#t fz
m:drit: a y fz
r\ P U Y z


Fguoi' bott P U z
hil: a r\ U Y f or a r\ U c f +o
A:gin
Ylrbcrz
Zoto a}, fz rit: a Trogr#m Yr:#t:yil: fz
P U z P U } z
Zoto a , f z rit: a bott P fz
Zoto a , W fz rit: a uot:n P fz
Zoto a, W fz rit: a Tuoi P fz
Zoto a ,WQfz rit: a F#m cong t#cfz
Zoto a , W]fz rit: a Vi# chi fz
Zoto a , Wl fz rit: a _uong P fz
P U W] z
ith Fguoi +o
A:gin
Zoto a , fz rit: a boTT fz
Zoto a , W fz m:#+ln auot:n f z
Zoto a , W fz m:#+ln a Tuoi fz
Zoto a , WQfz m:#+lna F#mctfz
Zotoa , W]fz m:#+ln aVi#chifz
Zoto a , Wl fz m:#+ln a _uong fz
en+z
qc Fguoi' uot:n th:n
A:gin
rit: a y, Fguoi fz
Fguoi' boTT P U Fguoi' boTT Wz
en+z
Zoto a}, } f z
rit: a Ti:p tuc nu# 5hong k a Y \ f fz
m:#+lnar\fz
en+z


Ylo<: a y fz
en+'
T0Db"$ #ER P P bL +,ng 5i-u con tr4 |Q~
Zii thutP

Typ:
Toint:rF U Fh#nbu z
Fh#nbu U m:cor+
uot:n P btring|Q}~z
Tuoi P int:g:rz
F#mct P qnt:g:rz
+i#chi Pbtring |Q}~z
_uong P r:#lz
F:9tP Toint:rFz
en+z
(#r
_#<t , Ttr, p, q P Toint:rFz
u:#pTopP int:g:rz
F#m: P btring|Q}~z
A:gin
_#<tP U Fil z
I#r5 a u:#pTopfz
m:p:#t
rit:lnz
rit:a uo t:nP fz m:#+lna F#m:fz
qc F#m: th:n
A:gin
F:da Ttrfz
Ttr ' hot:n P U F#m:z
rit:a TuoiP fz m:#+lna Ttr ' Tuoif
}
}

rit: a Fxm ct#cfz m:#+lna Ttr ' n#mctfz
rit: a 2B# chEP fz m:#+lna Ttr ' +i#chifz
rit:a luong fz m:#+lna Ttr ' luongfz
Ttr ' F:9t P U _#<tz
_#<tP U Ttrz
en+z
ntil F#m: Uz
a{ 2%c li ton b +#nh <ch {f
rit:lna V#nh <ch cn b fz
TtrP U _#<t z
hil: Ttr nil +o
A:gin
rit:lna uo t:nP, Ttr ' hot:nf
rit:lna TuoiP, Ttr ' Tuoifz
rit:lna F#m ct#c , Ttr' n#mctfz
rit:lna Vi# chi , Ttr' +i#chifz
rit:ln aluong , Ttr 'luongfz
rit:lnz TtrP U Ttr ' F:9tz
en+z
m:l:#<:a u:#pTopfz
:n+z
T0Db"$ #ER Qc bL +,ng c&u tr8c +> li)u mng
Zii thutP
Typ:
mt U Xrr#y| ' ' n ~ oc <tringz
mt U Xrr#y| ' ' n ~ oc r:#lz
mtQ U Xrr#y | ' ' n~ oc int:g:rz
a { n l <= lNng cn b {f
(#r
tuoi, n#mct P mtQz


luong P mtz
uot:n,Vi#chi P mtz
iP qnt:g:rz
A:gin
yor i P U to n +o
A:gin
rit: a uot:n |,i , ~ U fz m:#+ln a uot:n |i~fz
rit: a Tuoi|,i,~ U fz m:#+lna Tuoi|i~fz
rit: a F#mct|,i,~ U fz m:#+lna F#mct|i~fz
rit: a Vi#chi|,i,~ U fz m:#+lnaVi#chi|i~fz
rit: a _uong|,i,~ Ufz m:#+lna_uong|i~fz
:n+z
:n+z
?u# b# trDng hNp trnh by trn Gy ch8ng t# th&y, tuy
cgng gii quyt mt bi ton nhng cxn c* "o c&u tr8c +> li)u
Nc l0# ch%n m cc gii thut c! th- <H r&t 5hc nh#u' 2i3u ny
5hpng Bnh mt l.n n># m=i lin h) 5hng th- tch rDi c/# h#i
5hi ni)m c&u tr8c +> li)u a V#t# <tructur: f " gii thut
a Xlgorithm f ' AGy giD ch8ng t# 9:m 9;t mt "i 5hi ni)m c7
bn 5hc '
!"# "$#%&
d#DY"$ )#_8 W'G* 5'e" 14) 8J* )0\8 5U .'V* )0/"$ W4 "#f
?DE8 $X' .3 8J* )0\8 .D* )0U , S)/0&$^ S)0*8)*0^ 2 8g& 8J* )0\8
5U .'V* J7 .
u#i 5hi ni)m c&u tr8c +> li)u a V#t# <tructur: f " c&u
tr8c lu tr> a btor#g: btructur:f 5hng hon ton @ng nh&t' Tht
"y , "i cgng mt c&u tr8c +> li)u c! th- c! nhi3u c&u tr8c lu
tr> 5hc nh#u' Yhpng hn, "i c&u tr8c +> li)u mng h#i chi3u,c!


h#i c&u tr8c lu tr> r&t thng +,ng l c&u tr8c lu tr> u tin
+$ngamod m#or or+:rf " c&u tr8c lu tr> u tin ct a Yolunm
m#or or+:rf' I6t 5hc , nhi3u c&u tr8c +> li)u li c! th- Nc
bi-u +i1n bMng mt c&u tr8c lu tr> +uy nh&t' Yhpng hn, c&u tr8c
+> li)u +#nh <ch 5i-u _qyr, c&u tr8c +#nh <ch 5i-u yqyr, c&u
tr8c +> li)u cGy Tr::f 3u c! th- Nc th- hi)n trong mt c&u tr8c
lu tr> +uy nh&t l lu tr> 5 tipab:qu:nti#l <tor#g: #lloc#tionf'
Trong mn h%c Y&u tr8c +> li)u , ngDi t# thDng nghin
c*u cc loi c&u tr8c c7 bn <#u Gy P
Ing a Xrr#y f
V#nh <ch 5i-u _qyr abt#c5f
V#nh <ch 5i-u yqyr a ?u:u:f
V#nh <ch lin 5t 7n a bingly lin5:+ li<t f
V#nh <ch lin 5t "$ng a Yircul#rity lin5:+ li<tf
V#nh <ch lin 5t 5;p a Voubl: _in5:+ li<tf
Y&u tr8c +> li)u phi tuyn cGy a Tr::f
Y&u tr8c +> li)u phi tuyn 5i-u @ thB a Zr#ph f
1. P HIU SUT Ch- GII THUT , -LGiRITH jkkICIjNCl2
Ihi c&u tr8c +> li)u 3u c! th- Nc ci 6t bMng nhi3u
cch 5hc nh#u , +o ! gii thut 9L lo cc +> li)u &y c^ng 5hc
nh#u' (i)c nh gi nh>ng cch ci 6t 5hc nh#u c/# c&u tr8c
+> li)u +0# trn h#i i3u 5i)n chnhP
It l , 5h=i lNng b nh - lu tr> c&u tr8c +> li)u &y
u#i l , thDi gi#n c.n thit - th0c hi)n gii thut 9L lo
+> li)u
Trong h#i chE tiu trn Gy th chE tiu th* h#i ,t*c l thDi
gi#n th0c hi)n mt gii thut thDng Nc 9:m l qu#n tr%ng
Q
Q

h7n' Yh8ng t# <H 9:m 9;t 9:m chE tiu ny Nc nh gi nh th
nok
ThDi gi#n th0c hi)n mt gii thut chBu nh hCng c/#
nhi3u yu t=' It yu t= qu#n tr%ng l 5ch thc .u "o,bCi "
<= cc m,c .u "o thDng nh hCng n thDi gi#n 9L lo
ch8ng'( +, , thDi gi#n c.n thit - <Jp 9p th* t0 +#nh <ch cc
m,c ph, thuc "o <= lNng cc m,c trong +#nh <ch'Fh "y
,thDi gi#n th0c hi)n T c/# mt gii thut nh mt hm Tanf c/#
ln c/# +> li)u .u "o n 'Yc 5i-u l)nh a qn<tructionf " "n
t=c c/# my tnh th0c hi)n nh>ng l)nh ! c^ng nh hCng n
thDi gi#n th0c hi)n mt gii thut'Tuy nhin nh>ng yu t= ny
ph, thuc "o my tnh #ng <L +,ng " "y ch8ng 5hng th-
bi-u +i1n gi trB c/# Tanf bMng cc 7n "B thDi gi#n .y / chpng
hn nh bMng giGy |~' Th#y "o !, Tanf <H Nc tnh g.n 8ng
nh l <= lNng cc l)nh aqn<tructionf th0c hi)n' It yu t= 5hc
c! nh hCng n thDi gi#n th0c hi)n gii thut l ch&t lNng c/#
ch7ng trnh +o ch7ng trnh +Bch to r#' \hng phi m%i
ch7ng trnh +Bch 3u cho t# cc ch7ng trnh c! hi)u <u&t nh
nh#u' Fh "y, Tanf 5hng th- tnh nh <= lNng cc l)nh my
a I#chin: in<tructionf um Tanf <H Nc tnh nh l <= l.n th0c
hi)n cc l)nh trong gii thut' b#u Gy l bng gi trB c/# mt <=
hm thDng +gng - nh gi ph*c tp c/# gii thut P
Log

n n n
Log

n
n


n
Q
n
} }
]
]

] ]
] s s] s
Q ] s] l ls
] s s] ls ]}s sllQs
l Q s} }] QOs ]O]Qs]

Yc hm nh
N
, n Nc g%i l cc hm m^ ' Yc gii thut
c! thDi gi#n th0c hi)n l mt hm m^ thDng c! t=c tnh ton
r&t chm ' Y$n cc hm # th*c nh n ,
n

,
n
Q
,
Log

n , n
Log

n c! t=c th0c hi)n t=t h7n '


Zi <L rMng mhi l)nh trong gii thut Nc th0c hi)n trong
micr giGy ' ThDi gi#n c.n thit - th0c hi)n canf l)nh =i "i
cc hm thng +,ng "i nU ls cho trong bng <#u Gy P
um ThDi gi#n
_ogn Iicr giGy
n }' l Iicr giGy
n_ogn Iicr giGy
n

sl Iicr giGy
n
Q
O Iicr giGy
Yc qui tJc 9c Bnh ph*c tp c/# gii thut P
mUI TnC CNG
Zi <L Ta n f " Ta nf l thDi gi#n th0c hi)n h#i gii thut X
" X "i Tanf U racanff " T U racanff ' \hi ! thDi gi#n th0c
hi)n X r@i n X <H l T U Tanf W T anf " Nc nh gi
bMng i lNng r a m#9a canf,ganff'
l
l

mUI TnC NHoN
Zi <L Ta n f " Ta nf l thDi gi#n th0c hi)n h#i gii thut X
" X "i Tanf U racanff " T U racanff ' \hi ! thDi gi#n th0c
hi)n X " X l@ng nh#u <H l TanfT anf U r a canf,ganff'
VL 5F 1
Trong ch7ng trnh ch8ng t# phi th0c hi)n Q gii thut lin tip
nh#u "i cc ph*c tp l ra
n

f , r a
n
Q
f " r an
Log

n f '
\hi ! thDi gi#n th0c hi)n ch7ng trnh <H l ra
n
Q
f
VL 5F P
YGu l)nh gn 9 P U 9Wz c! ph*c tp l Y a hng <= f nn th:o
5o php c> r ln t# c! raf'
VL 5F Q
YGu l)nh chu trnh yor i P U to n +o 9 P U 9Wz c7 ph*c tp
l ran'f U ranf
VL 5F p
YGu l)nh chu trnh l@ng nh#u yor i P U to n +o
yor P U to n +o 9 P U 9Wz
c! ph*c tp r an'nf U ra
n

f
2- minh ho ,ch8ng t# 9:m 9;t gii thut tm gi trB trung bnh
c/# n <='

s
s

GII THUT TqNH GI TRr TRUNG BsNH
Yho nxng <u&t l#o ng trung bnh c/# n +o#nh nghi)p ' Tnh
nxng <u&t l#o ng trung bnh k
' 2%c n
' Yho gi trB b#n .u bum U}
Q' Yho chE <= b#n .u i U
]' Tnh bumU bum W | Fb_2 ~ i
l' Txng iP iUiW
s ' \i-m tr# i3u 5i)n iU n ' Fu 8ng th th0c hi)n bc ] '
Fu 5hng th chuy-n 9u=ng bc O
O' Tnh nxng <u&t trung bnh U bum n

Trong gii thut ny , cc lnh ,,Q th0c hi)n mt l.n' Yc
l)nh l,s,O to r# thGn c/# "$ng l6p " Nc th0c hi)n n l.n' YGu
l)nh ] 5i-m tr# <0 l6p li <H Nc th0c hi)n nW l.n' b#u 5hi 5t
th8c "$ng l6p, l)nh chE th0c hi)n mt l.n' \t qu phGn tch
cho trong bng <#u GyP
_)nh b= l.n th0c hi)n


Q
] n
l n
s n
O
O

O
Twng cng QnW]

ch8ng t# th&y rMng thDi gi#n th0c hi)n c/# gii thut ny l TanfU
QnW] ' \hi gi trB n txng ln , gi trB c/# Tanf c^ng txng ln th:o
mt cch tuyn tnh' Yh8ng t# n!i rMng, Tanf c! bc l n "
Nc 5o hi)u th:o 5o php ch> r ln c/# ton h%c nh <#uP
TanfU ranf
It cch twng qut , thDi gi#n tnh ton Tanf c/# mt gii thut
Nc g%i l c! bc canf ,5o hi)u bCi TanfU racanff nu t@n ti cc
<= +7ng Y " Fo <#o cho P

TanfUY 'canf "i m%i nUF}
nghS# l Tanf bB ch6n trn bCi mt hMng <= nhGn "i canf "i m%i
gi trB c/# n tK mt i-m no !' 2 ph*c tp c/# gii thut ny
Nc g%i l rayanff
( +,, ph*c tp c/# gii thut trn Gy l ranf bCi "
thDi gi#n tnh Nc l TanfU]nWl " " ]nWlU ]nWn "i m%i
nl' T# c! Tanf Uln "i m%i nl '
Fh "y, t# chE c.n ch%n yanfUn, FoUl " YUl ch8ng t#
c! th- "itP TanfU ranf ' 27ng nhin l b&t png th*c c^ng
8ng 5hi t# "it TanfUral}nf h#y TanfUra]nWlf h#y TanfU
aQ']s nW 'Of nhng ch8ng t# ch%n cc hm 7n gin h7n
nh n,_og - bi-u +i1n ph*c tp c/# gii thut'
Yh8ng t# 9;t thm gii thut tm 5im tuyn tnh <#u Gy P Tm
ph.n tL c! gi trB qt:m cho trc trong mng X|~, X|~'''X|n~"
nu c! th 9c Bnh "B tr c/# n!'

GII THUT TsM KItM TUltN TqNH


a Tm qt:m trong +#nh <ch X|i~ ' youn+ <H c! gi trB 8ng "
_oc c! gi trB l "B tr c/# qt:m' Fu 5hng youn+ <H c! gi trB
<#if
' Zn gi trB <#i cho youn+
' Zn gi trB cho _oc
Q' hil: _ocU n #n+ not youn+ , th0c hi)n cc bc <#u GyP
]' qc qt:m UX|_oc~ th:n
l' Zn gi trB 8ng cho youn+
s' el<:
Txng _oc thm
TrDng hNp 9&u nh&t l 5hng tm th&y qt:m trong +#nh <ch "
trong trDng hNp ny thDi gi#n tnh T_anf cho gii thut tm
5im tuyn tnh nh <#uP
_)nh b= l.n th0c hi)n


Q nW
] n
l }
s n
Twng cng QnWQ
Fh "y, T_ anfU QnWQ h#y T_anfU ranf bCi " QnWQU]n "i
m%i nUQ' Fu +#nh <ch [ +Nc <Jp 9p th qu trnh tm 5im
<H nh#nh h7n r&t nhi3u ' Zii thut tm 5im nhB phGn <#u Gy tin
hnh nh <#uP
Fu qt:m X|Ii+~ P tm trong nL# .u c/# +#nh <ch
Fu qt:m X|Ii+~ P tm trong nL# cu=i c/# +#nh <ch


Fu qt:m UX|Ii+~ P tm r# qt:m
Trong ! Ii+ l ph.n tL C gi># c/# +#nh <ch'
GII THUT TsM KItM NHr dHoN
a Tm 5im nhB phGn ph.n tL qt:m trong +#nh <ch' youn+ <H c!
gi trB 8ng " Ii+ c! gi trB l "B tr c/# qt:m nu tm Nc' Fu
5hng youn+ <H c! gi trB l <#if
' Zn gi trB <#i cho youn+
' Zn cho yir<t
Q' Zn n cho _#<t
]' hil: yir<t U _#<t #n+ not youn+ th0c hi)n cc bc <#u +GyP
l' Tnh Ii+Uayir<tW_#<tf
s' qc qt:m X| Ii+~ th:n
O' Zn gi trB Ii+U cho _#<t
' el<: qc qt:m X|Ii+~ th:n
' Zn gi trB Ii+W cho yir<t
}' el<: gn gi trB 8ng cho youn+
Trong gii thut ny cc l)nh , " Q Nc th0c hi)n
8ng mt l.n " - tnh ph*c tp cho trDng hNp 9&u nh&t
Tanf ch8ng t# phi tnh <= l.n th0c hi)n c/# "$ng l6p ch*# cc
l)nh tK ] n }' Ihi l.n i qu# "$ng l6p ny ln c/# +#nh
<ch gim i mt nL#' _.n cu=i cgng i qu# +#nh <ch c! ln
l ' Fh "y <= l.n l6p li twng cng c/# "$ng l6p ny l cng
"i 5 l.n i qu# "$ng l6p - cu=i cgng to r# +#nh <ch con c!
+i '
( ln c/# +#nh <ch con <#u 5 l.n i qu# nhi3u nh&t l F

N
t# c!P

K

}
}

nghS# l F
K+
h#y
Log

n 5W
b= l.n i qu# "$ng lp l <= nguyn b; nh&t tho m[n b&t
png th*c trn Gy' nghS# l ph.n nguyn c/#
Log

n ' Fh "y
trong trDng hNp 9&u nh&t , 5hi qt:m ln h7n cc ph.n tL
X|~,X|~'''X|n~ ,l)nh ] Nc th0c hi)n 5hng nhi3u h7n W
Log

n l.n, l)nh l,s " 5hng nhi3u h7n W


Log

n l.n "
cc l)nh O, " } 5hng l.n' ThDi gi#n tnh twng cng nh "y
5hng qu W]
Log

n l.n, t*c l TanfU ra


Log

n f' ACi "


_g#rit c7 <= h#i 9u&t hi)n r&t thDng 9uyn trong phGn tch gii
thut ch8ng t# qui c 5o hi)u _og n l
Log

n '
Fh "y , ch8ng t# th&y ph*c tp c/# gii thut tm
5im tuyn tnh l ranf c$n c/# gii thut tm 5im nhB phGn l
ra_ognf rj rng l gii thut tm 5im nhB phGn c! hi)u qu h7n
=i "i cc +#nh <ch c! qui m ln' Fhng =i "i cc +#nh
<ch c! qui m nh4 gii thut tm 5im tuyn tnh "in c! u th'
Yc nghin c*u cho th&y, =i "i cc +#nh <ch c! 5hng qu }
ph.n tL, gii thut tm 5im tuyn tnh c! hi)u qu h7n gii thut
tm 5im nhB phGn'
1. Q dHNG dHd DIuN vT GII THUT
2- +i1n t mt gii thut , thng thDng ngDi t# c! th- +gng b#
ph7ng php ch/ yu <#u Gy P
d#DY"$ R#9R 1 Vi1n t gii thut bMng lDi
d#DY"$ R#9R P Vi1n t gii thut bMng <7 @ 5h=i
d#DY"$ R#9R Q Vi1n t gii thut bMng mt ngn ng> lp trnh
c! c&u tr8c'
T# 9;t " +, bi-u +i1n gii thut tnh gi trB trung bnh c/# mt
+[y <= X|~,X|~,''' X|n~
2- +i1n t gii thut bMng lDi t# c! cc +[y <#u GyP


' 2%c n
' Yho bum U}
Q' Yho iU
]' Tnh bum U bumW X|i~
l' Txng q UqW
s' Fu qU n th chuy-n ln bc ]z nu 5hng th 9u=ng bc
O. Tnh I:#n U bumn
. qn I:#n
AGy giD t# c! bi-u +i1n bMng <7 @ 5h=i nh <#u P

./ 01i2 i3 1444n
Sum5367 8531
Sum53 Sum901i:7
853 8917
8;3n
< T
=>?n 53 Sum@n7
+!int>! =>?n7


Fu +gng ngn ng> TXbYX_ t# c! on ch7ng trnh <#u
GyP
m:#+anfz
yor iPU to n +o
r:#+aX|i~fz
bum U}z
yor iPU to n +o
bumPU bumW X|i~z
I:#nPU bumnz
rit:lna Zi# tri trung binhP, I:#nPPfz
Yh8ng t# 9;t thm mt " +, 5hc' Trong phGn h) qun
lo c/# mt +o#nh nghi)p, ngDi t# yu c.u tnh gi trB twng <n
lNng trong mt nxm ' Zi <L rMng +o#nh nghi)p c! n phGn
9Cng cgng <n 9u&t r# m loi <n ph`m ' Ait <= lNng <n
ph`m c/# mhi phGn 9Cng " 7n gi c/# mhi <n ph`m'
d#DY"$ R#9R 1 P D'e" ?w) $'(' )#*+) W`"$ .b'.
Ac P Fp <= li)u
Ac P Tnh ton gi trB twng <nlNng c/# mt phGn 9Cng
bMng cch l&y <= lNng tKng loi <n ph`m nhGn "i 7n gi '
Ac Q P \i-m tr# 9:m [ tnh gi trB twng <n lNng cho t&t
c cc phGn 9Cng h#y ch#k
Ac ] P Tinh gi trB twng <n lNng c/# c +o#nh nghi)p
Ac l P qn 5t qu'
Th7ng php +i1n t gii thut bMng lDi c! u i-m l lm cho
ngDi %c +1 +ng nJm bJt Nc t tCng ch/ o c/# gii thut,
nhng n! c$n r&t th ,5hi chuy-n gii thut <#ng mt ngn ng>
Q
Q

lp trnh c, th- no ! aYWW , T#<c#l,'''ft# phi thit 5 lm mBn
+.n trong r&t nhi3u cng on
d#DY"$ R#9R P P D'e" ?w) $'(' )#*+) W`"$ ZY ?x ]#C'

T tCng c/# ph7ng php ny l trn c7 <C o @ ch/ o
c/# gii thut, ngDi t# tin hnh 9Gy +0ng cc 5h=i bi-u +i1n cc
qui trnh tnh ton " m=i lin h) gi># cc 5h=i "i nh#u'
Th7ng php bi-u +i1n thut ton bMng <7 @ 5h=i cho t# mt ci
nhn twng th- "3 ph7ng php gii quyt bi ton 6t r#' Trn c7
<C c/# <7 @ 5h=i ngDi t# 1 +ng chuy-n thnh ch7ng trnh
trong mt ngn ng> lp trnh c, th-'Yhpng hn t# 9:m 9;t <7 @
5h=i bi-u +i1n gii thut tnh gi trB twng <n lNng c/# +o#nh
nghi)p <#u GyP
]
]


ZTbT
i
U } z iU,'''n
q U
U
ZTbT
i
U ZTbT
i
Wb_
i
{ZqX


U W
U I
q Uq W
qU F
Tinh tAng
8n
T
T
<
<
d#DY"$ R#9R Q P D'e" ?w) $'(' )#*+) W`"$ 14) "$y" "$U .+R
)0@"# 8F )#G
Th:o ph7ng php ny ngDi t# <L +,ng mt ngn ng> lp trnh
c! c&u tr8canh T#<c#l chpng hnf - bi-u +i1n thut ton'
Yhpng hn trong TXbYX_ gii thut c/# bi ton tnh gi trB twng
<n lNng c/# +o#nh nghi)p Nc bi-u +i1n nh <#uP

Typ:
X U #rr#y ['''n,'''m] oc r:#lz
A U #rr#y ['''m] oc r:#lz
Y U #rr#y ['''n] oc r:#lz
(#r
l
l

boluong P X z
gt<p P Y z
gi# P A z
i , P int:rg:r z
tong P r:#lz
A:gin
yor i P U to n +o
yor P U to m +o
m:#+ln a<oluong [i,] fz
yor P U to m +o
m:#+ln agi# [] fz
yor i P U to n +o
A:gin
gt<p [i] P U }z
yor P U to m +o
gt<p [i] P U gt<p [i] W<oluong [i, ~ { gi# |~ z
:n+z
tongPU } z
yor q P U to n +o TongPU Tong W gt<p [i] z
rit: aZi# tri tong <#n luongPfz
rit:_n atongPPfz
:n+z
Fh "y , qu# "i)c trnh by Q ph7ng php 5hc nh#u
- +i1n t mt gii thut ch8ng t# c! mt <= nhn 9;t <#u GyP
Th7ng php +i1n t gii thut bMng lDi gi8p t# +1 nJm bJt t
tCng ch/ o c/# gii thut nhng c$n C m*c trKu tNng c#o,
tK gii thut n ch7ng trnh c, th- c$n c.n nhi3u cng on
lm mBn a Yhi tit +.n n m*c tKng l)nh c, th-f
Th7ng php <7 @ 5h=i cho t# mt ci nhn twng qut "3 c&u
tr8c c/# mt gii thut nhng =i "i cc gii thut ph*c tp "3
tnh logic th ph7ng php ny 5;m hi)u qu'
s
s

Th7ng php +i1n t bMng mt ngn ng> thut ton c, th- tuy
phi tuGn th:o cc qui Bnh c/# ngn ng> ! nhng "i)c l0# ch%n
mt ngn ng> c! c&u tr8c ti3n Bnh / mnh a nh T#<c#l chpng
hnf <H cho ph;p ch8ng t# bi-u +i1n cc gii thut mt cch ngJn
g%n, +1 +ng hnh +ung r# cc cng on thit 5 gii thut'
TXbYX_ c! cc c&u tr8c +> li)u .y/, c! th- bi-u +i1n cc loi
c&u tr8c +> li)u tK 7n gin n ph*c tp , tK c&u tr8c tuyn tnh
n c&u tr8c phi tuyn '
Trong gio trnh ny ch8ng ti <L +,ng T#<c#l - bi-u
+i1n cc gii thut' Trong mt "i trDng hNp <H <L +,ng thm c
<7 @ 5h=i - minh ho '
1.p GII THUT mUI , RjCURSIVj -LGiRITHM 2
Zii thut ) qui c! "#i tr$ r&t 6c bi)t ' FhD gii thut )
qui m ch8ng t# c! th- thit 5 lDi gii c/# mt bi ton ph*c tp
mt cch r&t ngJn g%n , c %ng ' Y! mt <= "&n 3 m cc gii
thut ) qui l thch hNp h7n c - gii quyt ch8ng '
Trong ph.n ny ch8ng t# <H 9:m 9;t gii thut ) qui ,
ch*ng minh tnh 8ng Jn c/# gii thut ) qui " hi)u <u&t c/#
gii thut ) qui <o "i gii thut 5hng ) qui '
Trc ht , ch8ng t# lm qu:n "i 5hi ni)m ) qui'
Yh8ng t# n!i mt =i tNng no ! l ) qui nu n! b#o hm
chnh n! nh mt b phn c&u thnh ' uo6c n!i mt cch 5hc l
=i tNng ! Nc Bnh nghS# thng qu# chnh bn thGn n! '
2Bnh nghS# ) qui lun lun b#o g@m h#i ph.n P
d#S" "^/ a #nchor f , trong ! tc ng c/# hm h#y th/ t,c
Nc 6c t cho mt th#m <=
d#S" ?V :*' a r:cur<i": f , trong ! tc ng c.n Nc th0c
hi)n cho gi trB hi)n thDi c/# cc th#m <= Nc Bnh nghS# bMng
cc tc ng h#y gi trB Nc Bnh nghS# trc Gy '
O
O


VL 5F 1
2Bnh nghS# <= t0 nhin nh <#u P
l <= t0 nhin
9 l <= t0 nhin nu 9t l <= t0 nhin
( +,
2Bnh nghS# gi#i thK# nh <#u P
} U
Fu n } th n Unantf
Vgng Bnh nghS# ny - tnh Q , trc ht ch8ng t# c.n tnh
" <#u ! Q Nc tnh nh l tch c/# " Q ' T7ng t0 nh
"y , mu=n tnh , trc ht ch8ng t# c.n tnh " <#u !
Nc coi l tch c/# " <= ' bL +,ng mt l.n n># t# c! U }
9 " ch8ng t# t n trDng hNp c/# ph.n n:o th:o <7 @ <#u
Gy P
Q U Q9

U 9

U 9 }

} U
Vgng gi trB c/# } , t# c! th- tnh Nc ' Zi trB ny Nc
+gng - tnh <#u ! Nc +gng - tnh Q " t# Nc gi trB
cu=i cgng l s '
Zii thut ny Nc ci 6t nh <#u P
k*"8)'/" k-CTiRI-L , " c '")^$^0 2 c '")^$^0 z
A:gin


ic n U } th:n c#ctori#l P U
:l<:
y#ctori#l P U n { y#ctori#l a ntf
:n+z

<?$tA!i?l B3C 3 3D 2E 3 '
<?$tA!i?l B 2C 3 2D1E 3 2
<?$tA!i?l B 1C 3 1D6E 3 1
<?$tA!i?l B 6C 31
trong gii thut ) qui trn Gy ch8ng t# chE c.n n mt th#m tr4
n chnh n! ' AGy giD ch8ng t# 9:m 9;t mt gii thut ) qui
5hc $i h4i nhi3u th#m tr4 h7n ' ;t +[y <= yibon#cci <#u Gy P
, ,,Q,l,,Q,,'''
trong ! mhi <= <#u l l twng c/# h#i <= *ng trc n! ' Zii
thut yibon#cci yib Nc Bnh nghS# nh <#u P
yib af U ph.n n:o
yib af U


"i n t# c! yibanf U yibantf W yibantf
T# ci 6t nh <#u P
k*"8)'/" k'W, " c '")^$^0 2 c '")^$^0 z
A:gin
ic nU th:n
yib P U
:l<:
yib P U yiba ntf W yiba ntf
:n+z
Zi <L t# c! th#m tr4 yibalf Nc g%i - tnh <=
yibon#cci th* l , 5hi ! th:o bc qui np :l<: yibP U yib a ntf W
yiba ntf <H to r# th#m tr4 yiba]f z tK yib a]f <H to r# yibaQf r@i
yibaf ' ( i3u 5i)n c/# ph.n n:o Nc tho m[n nn gi trB
Nc tr cho yibaf " +o ! yibaQf U ' V[y <= yibon#cci Nc
*ng +,ng trong cc gii thut tm 5im '
AGy giD ch8ng t# 9:m 9;t tnh 8ng Jn " hi)u <u&t
c/# cc gii thut ) qui '
Fh [ bit , - ch*ng minh tnh 8ng Jn c/# gii
thut ch8ng t# phi ch*ng minh rMng gii thut <H 5t th8c " cho
t# 5t qu 8ng ' 2- ch*ng minh tnh 8ng Jn c/# cc gii thut
) qui ch8ng t# +gng cng c, qui np c/# ton h%c'
;t hm ) qui tnh gi#i thK# <#u Gy P
k*"8)'/" k-CTiRI-L , " c I")^$^0 2 c '")^$^0 z
A:gin
ic n U } th:n c#ctori#l P U
:l<:
y#ctori#l P U n { y#ctori#l a ntf
:n+z
Q}
Q}

Trong trDng hNp ny cc 5hpng Bnh .u "o " .u r# l P
2.u "o P It <= nguyn +7ng
2.u r# P um <H 5t th8c " cho t# gi trB c/# F
AGy giD , bMng ph;p qui np ton h%c , ch8ng t# <H chE r#
rMng 5hpng Bnh .u r# Nc 5;o th:o tK 5hpng Bnh .u "o '
Ac c/# qui np
Fu n U } , l)nh C ph.n n:o y#ctori#l P U lp t*c Nc th0c
hi)n gii thut 5t th8c " gi trB 8ng c/# hm l }
Ac th* h#i c/# qui np
Zi <L rMng "i <= nguyn 5 5hng Gm , hm 5t th8c "i nU 5 "
gi trB tr 8ng 5
Ac th* b# c/# qui np
AGy giD ch8ng t# phi ch*ng minh rMng "i n U 5W gi trB tr li
cho hm y#ctori#l <H l a 5Wf '
Tht "y , "i n U 5W t# c! y#ctori#l P U n{ y#ctori#l a nt f m
nt U 5 ' (y th:o gi thuyt qui np th#m tr4 y#ctori#l antf 5t
th8c " cho t# gi trB c/# hm l 5 TK Gy <uy r# rMng th#m tr4
"i th#m <= n U 5 W c^ng 5t th8c "i th#m <= l
a 5W f {5 U a5 Wf
?ui np [ Nc 5hpng Bnh '
AGy giD ch8ng t# nghin c*u "&n 3 hi)u <u&t c/# gii
thut ) qui '
ThDi gi#n tnh ton Tanf c/# gii thut ) qui Nc cho
bCi cng th*c truy ton ' \hi hm y#ctori#l th#m tr4 "i th#m <=
n } , bi-u th*c lgic nU} Nc tnh ' ( " n! c! gi trB <#i , nn
l)nh qui np
y#ctori#l P U n{ y#ctori#l antf
Nc th0c hi)n ' (y Tanf U W Tantf af
T7ng t0 , nu nt }, t# c! P
Q
Q

Ta ntf U W Tantf af
\t hNp af " af t# c! P
Tanf UWWTantf
Tip t,c qu trnh ny , cu=i cgng t# Nc P
Tanf U WW W'''''''W WTa}f
ThDi gi#n Ta}f - tnh } l a " bi-u th*c lgic nU} Nc tnh
" <#u ! th0c hi)n l)nh C ph.n n:o y#ctori#l P U f '
Fh "y t# c! P Tanf U anWf t*c l Tanf U ranf
AGy giD ch8ng t# <o <nh thDi gi#n th0c hi)n c/# gii thut
) qui " gii thut 5hng ) qui '
Trc ht , ch8ng t# "it gii thut tnh gi#i thK# 5hng ) qui
+i +ng <#u GyP
k*"8)'/" NRk&8)/0'&. , "c I")^$^0 2 c I")^$^0z
(#r
i , pro+ P int:g:rz
A:gin
Tro+ P U z
yor iP U to n +o
Tro+ P U Tro+ {i z
Fmy#ctori#l P U Tro+
:n+z
V1 +ng 9c Bnh Nc thDi gi#n tnh ton c/# gii thut
ny l Tanf U ranf ' Fh "y , ph*c tp c/# gii thut ) qui
tnh gi#i thK# " gii thut 5hng ) qui l nh nh#u ' Trong mt
<= trDng hNp 5hc , thDi gi#n tnh ton c/# gii thut ) qui c!
th- ln h7n r&t nhi3u <o "i gii thut 5hng ) qui t7ng *ng '
Yhpng hn "i gii thut ) qui tnh +[y <= yibon#cci ' Tuy
nhin , c! r&t nhi3u "&n 3 m "i)c gii quyt n! bMng cch +gng
Q
Q

) qui <H t0 nhin h7n " t ph*c tp h7n ' ( +, bi ton Thp
u ni " bi ton ThGn gii ' \hi <L +,ng cc c&u tr8c +> li)u
nh +#nh <ch, cGy, @ thB ngDi t# c^ng thDng +gng gii thut
) qui ' \hi +uy)t mt c&u tr8c cGy nhB phGn th:o mt th* t0 no
! , cc gii thut ) qui lm cho ph;p bi-u +i1n cc qu trnh
th0c hi)n mt cch <ng </# , rj rng ' Trong cc trDng hNp nh
"y , <0 7n gin " p mJt c/# cc gii thut ) qui thK# <*c
- bg "o <0 5hng hi)u qu nu c! th- c! '
2- 5t th8c ph.n trnh by "3 gii thut ) qui , ch8ng t#
9;t mt bi ton 5inh i-n cho th&y gii thut ) qui l 6c bi)t
hi)u qu trong trDng hNp ny ' 2! l bi ton Thp u ni

0 F C
Ai ton 6t r# nh <#u P Y! mt ch@ng S# C c%c X' u c.u
chuy-n cc S# tK c%c bn tri <#ng bn phi th:o cc lut <#u
GyP
\hi +i chuy-n mt S# , n! phi Nc 6t "o mt trong b# c%c
Ihi l.n chE Nc chuy-n mt S# " phi l S# C trn cgng
2S# ln h7n 5hng b#o giD Nc nMm trn S# nh4 h7n '
QQ
QQ

Y! th- gii quyt bi ton bMng gii thut ) qui mt cch
+1 +ng , nhng cch gii 5hng +gng ) qui l r&t 5h! 5hxn
Zii thut ) qui nh <#u P
Fu chE c! S# P Yhuy-n n! tK c%c X <#ng c%c Y l 9ong
Zi <L rMng bi ton c! nghi)m "i nt S# ' Fghi)m c/# bi ton
"i n S# c! th- nhn Nc bMng ph7ng php ) qui nh <#u P
t Yhuy-n nt S# trn cgng C c%c X <#ng c%c A , +gng c%c Y
nh l c%c ph,
t Yhuy-n S# c$n li C c%c X <#ng c%c Y
Q t Yhuy-n nt S# tK A <#ng Y , +gng X nh c%c ph,
b7 @ trn Gy Nc ci 6t bMng th/ t,c ) qui <#u Gy P
d0/8^5*0^ M/I^ , "c '")^$^0 z S)&0)d^5{ -*>d^5{ j"5d^5 c
C#&02 z
a Th/ t,c chuy-n n S# tK bt#rtT:+ <#ng en+T:+ bMng cch +gng
Xu9T:+ nh l c%c ph, f
A:gin
ic n U th:n
rit:lna Yhuy-n S# tK , bt#rtT:+ , <#ng , en+T:+ f
:l<:
A:gin
a { Yhuy-n nt S# tK bt#rtT:+ <#ng Xu9T:+ +gng en+T:+{f
Io": a nt , bt#rtT:+, en+T:+, Xu9T:+ fP
a{ Yhuy-n mt S# tK bt#rtT:+ <#ng en+T:+ {f
Io":a , bt#rtT:+, ,en+T:+ fz
a{ Yhuy-n nt S# tK Xu9T:+ <#ng en+T:+ +gng bt#rtT:+ {f
Io":ant,Xu9T:+, bt#rtT:+, en+T:+fP
:n+z
Q]
Q]

:n+z
Zi <L c! ] S# trn c%c X ' A " Y l h#i c%c c$n li ' Yh7ng
trnh +gng th/ t,c trn Gy - gii quyt bi ton trong trDng
hNp ny nh <#u P
d0/$0&1 T/|^0Zi} H&"/' , I"R*){/*)R*)2z
Yon<t
T:+ U Xz
T:+ U Az
T:+Q U Y z
(#r
FumVi<5P qnt:g:r z a { b= lNng S# {f
Troc:+ur: Io": a nP int:g:r z bt#rtT:+, Xu9T:+, en+T:+ P Yh#rf z
a Th/ t,c chuy-n n S# tK bt#rtT:+ <#ng en+T:+ bMng cch +gng
Xu9T:+ nh l c%c ph, f
A:gin
ic n U th:n
rit:lna Yhuy-n S# tK , bt#rtT:+ , <#ng , en+T:+ f
:l<:
A:gin
a { Yhuy-n nt S# tK bt#rtT:+ <#ng Xu9T:+ +gng en+T:+{f
Io": a nt , bt#rtT:+, en+T:+, Xu9T:+ fP
a{ Yhuy-n mt S# tK bt#rtT:+ <#ng en+T:+ {f
Io":a , bt#rtT:+, ,en+T:+ fz
a{ Yhuy-n nt S# tK Xu9T:+ <#ng en+T:+ +gng bt#rtT:+ {f
Io":ant,Xu9T:+, bt#rtT:+, en+T:+fP
:n+z
:n+z
A:gin a{ Yh7ng trnh chnh {f
Ql
Ql

rit:a b= lNng cc S# l P fz m:#+lna FumVi<5 f z
Io": a FumVi<5, T:+, T:+, T:+Q fP
:n+'
Yhy miu ch7ng trnh P
b= lNng cc S# P ]
Yhuy-n S# tK X <#ng A
Yhuy-n S# tK X <#ng Y
Yhuy-n S# tK A <#ng Y
Yhuy-n S# tK X <#ng A
Yhuy-n S# tK Y <#ng X
Yhuy-n S# tK Y <#ng A
Yhuy-n S# tK X <#ng A
Yhuy-n S# tK X <#ng Y
Yhuy-n S# tK A <#ng Y
Yhuy-n S# tK A <#ng X
Yhuy-n S# tK Y <#ng X
Yhuy-n S# tK A <#ng Y
Yhuy-n S# tK X <#ng A
Yhuy-n S# tK X <#ng Y
Yhuy-n S# tK A <#ng Y
1. ~ dHNG dHd THItT Kt GII THUT
1.~.1 KHI NIM MiDULj Hi
Trong ph7ng php lp trnh c&u tr8c c! mt 5hi ni)m
r&t c7 bn l 5hi ni)m mo+ul: ' Ihi mo+ul: c! th- coi nh mt
7n th- ch7ng trnh c lp c! th- lJp gh;p "i nh#u ' T
tCng chnh c/# mo+ul: ho l phGn chi# bi ton ln thnh cc
Qs
Qs

bi ton nh4 h7n , ngy cng c, th- " chi tit h7n th:o <7 @ c&u
tr8c hnh cGy <#u Gy P

I
I I
I I IQ I I
IQ IQ IQQ
Fu t# coi bi ton chnh l mo+ul: C bc th mo+ul:
ny li Nc phGn chi# thnh cc mo+ul: bc, bc Q ''' th:o c&u
tr8c hnh cGy'
Trong <7 @ trn Gy mo+ul: chnh I Nc phGn chi#
thnh h#i mo+ul: I " I' 2n lNt mnh , mo+ul: I li
Nc chi# thnh b# mo+ul: nh4 h7n l I, I, IQ , mo+ul:
I Nc chi# thnh I , I ' Io+ul: con IQ li Nc
phGn chi# r# b# mo+ul: IQ,IQ, IQQ'
Ihi mo+ul: gii quyt mt "&n 3 nh4 ring rH , c lp
"i cc mo+ul: 5hc " +o mt lp trnh "in m nhn' T
tCng phGn r[ thnh cc mo+ul: l t tCng chnh to nn mt
ph7ng hng lp trnh r&t qu#n tr%ng Nc g%i l lp trnh c&u
tr8c a Trogr#ming btructur: f
1. ~. P THItT Kt T TRN UNG
, Tid DiN DjSIGN2
QO
QO

2Gy l mt ph7ng php thit 5 gii thut +0# trn t
tCng mo+ul: ho' Fi +ung c/# ph7ng php thit 5 ny nh
<#u P
Trc ht ngDi t# 9c Bnh cc "&n 3 ch/ yu nh&t m
"i)c gii quyt bi ton yu c.u , b#o qut Nc ton b bi ton '
b#u ! phGn chi# nhi)m ", c.n gii quyt thnh cc ni)m ", c,
th- h7n, t*c l chuy-n +.n tK m+ul: chnh n cc m+un con
tK trn 9u=ng +i , +o "y ph7ng php c! tn g%i l thit 5
tK Enh 9u=ngaTop +odn +:<ign f '
2- minh ho cho ph7ng php ny , ch8ng t# 9;t bi ton
thit 5 h) tin h%c qun lo ho 7n bn hng cho mt twng cng
ty th7ng mi'
I,c ch c/# bi ton l thit 5 mt h) th=ng cc
ch7ng trnh qun lo c7 <C +> li)u ho 7n'
ThGn tch bi tonP
b= li)u b#n .uP
T)p ho 7n "i cc trDng P
I[ hng ho F
Tn hng Y
b= lNng F
27n gi F
Fgy bn V
Fgy nhp V
b= hi)u 5ho Y
Yc ph;p ton 9L lo
Fp <= li)u cho t)p ho 7n
Tm 5im, hi-n thB ,hu, <L# mt ho 7n'
_p bng twng hNp hng t@n 5ho
_p bng twng hNp 5inh +o#nh th:o tKng thng
Q
Q

_p bng twng hNp 5inh +o#nh th:o nh!m hng
ThGn tch, +0 bo m*c tiu th, hng ho
Fh "y t# c! phc tho th* nh&t "3 bi ton 6t r# P

+hGn mHm -un lI hAJ K&n
#LA d li)u FA t! X( lI
Io+ul: chnh Nc phGn chi# thnh Q mo+ul: nh4 P
t Io+ul: "o <= li)u cho t)p
t Io+ul: bo tr
t Io+ul: 9L lo
Trong mo+ul: bo tr ch8ng t# c.n th0c hi)n mt <= cng "i)c
<#u GyP
t 2%c li t)p ho 7n
t bL# ch># , bw <ung <= li)u trong mhi ho 7n
Trong mo+ul: 9L lo cc cng "i)c chnh l
t qn bng twng hNp 5inh +o#nh trong nxm a A f
t Tnh ton " in bng twng hNp hng t@n 5ho aAf
t qn bng twng hNp 5inh +o#nh th:o nh!m m[ hng ho
Q
Q

a AQ f
t ThGn tch " +0 bo a A] f
Fu coi mhi cng "i)c li)t 5 trn Gy l mt mo+ul: th t# c!
phc tho th* h#i <#u GyP

M)-un lI hAJ K&n
#LA NO li)u FA t! X( lI
PQ0D <8LQ +!int F1

QD8T <8LQ +!int F2
+!int F3
+!int F4
Fh "y, th:o ph7ng php thit 5 ny t# <H c! O mo+ul: c7 <C,
mhi mo+ul: l mt ch7ng trnh gii quyt mt "&n 3 c, th-'
1. ~.Q THItT Kt T DI LN , BiTTiM Ud DjSIGN 2

]}
]}

T tCng c/# ph7ng php thit 5 ny ngNc li "i
ph7ng php Top +odn +:<ign " b#o g@m cc o chnh <#u Gy '
Trc ht ngDi t# tin hnh gii quyt cc "&n 3 c, th- ,<#u
! trn c7 <C nh gi m*c t7ng t0 "3 ch*c nxng c/# cc "&n
3 ny trong "i)c gii quyt bi ton ngDi t# gp ch8ng li thnh
tKng nh!m cgng ch*c nxng tK +i ln trn cho n mun chnh
' b#u ! <H thit 5 thm mt <= ch7ng trnh lm phong ph8 h7n
,.y / h7n ch*c nxng c/# cc phGn h) " cu=i cgng l thit 5
mt ch7ng trnh lm nhi)m ", tp hNp cc mun thnh mt h)
ch7ng trnh th=ng nh&t, hon chEnh'
2- minh ho cho t tCng c/# ph7ng php thit 5
bootom up +:<ign ch8ng t# 9:m 9;t bi ton <#u Gy P
Zi <L trong mt +o#nh nghi)p , cng "i)c *ng +,ng tin h%c
trong qun lo [ Nc tri-n 5h#i C cc b phn 5hc nh#u "
trong tKng thDi i-m 5hc nh#u' \t qu l ngDi t# [ thit 5 "
# "o <L +,ng mt <= ch7ng trnh qun lo trong cc ph$ng
b#n a Th$ng ti ", , Th$ng tw ch*c hnh chnh , Th$ng cung *ng
nguyn "t li)u '''f V#nh <ch cc ch7ng trnh nh <#uP
Trog P (o <= li)u cho t)p h@ <7 cn b
Trog P bL# ch># , bw <ung, cp nht h@ <7
Trog Q P (o <= li)u cho t)p qun lo nguyn "t li)u
Trog ] P (o <= li)u cho t)p ho 7n bn <n ph`m
Trog l P Tnh l7ng cn b qun lo
Trog s P _p bng +0 ton <L +,ng nguyn li)u cho <n 9u&t
Trog O P?un lo cn b
Trog P _p bng tnh gi trB <n ph`m bn r#
Yc ch7ng trnh ny [ Nc *ng +,ng c! 5t qu trong
<n 9u&t 5inh +o#nh " [ Nc th0c t 5i-m nghi)m' AGy giD ,
trn c7 <C cc ch7ng trnh c, th- ny _[nh o nh my c! nhu
c.u thit 5 mt h) ch7ng trnh th=ng nh&t ph,c ", t=t h7n cho
"i)c qun lo +o#nh nghi)p' Trong trDng hNp ny ch8ng t# "n
]
]

+,ng ph7ng php thit 5 TK y ln th:o cc phc tho <#u
Gy P
dHC THi TH NHT
Zp cc mun ,,l,O thnh phGn h) qun lo nhGn <0

Run lI nhn N
+!Ag1 +!Ag 2 +!Ag " +!Ag *
dHC THi TH H-I
Zp cc mun ], thnh ch*c nxng qun lo bn hng
]
]


Run l I SJn hLng
+!Ag 4 +!Ag T
dHC THi TH B-
Zp cc mun Q,s thnh ch*c nxng qun lo 5ho hng


Run lI khA hLng
+!Ag 3 +!Ag '
dHC THi TH p

Trn c7 <C ch*c nxng c/# cc phGn h) qun lo trn
Gy,ch8ng t# c! th- tin hnh thit 5 thm mt <= ch7ng trnh
5hc lm phong ph8 thm cc "&n 3 m h) th=ng #ng qun
loaprog t+0 bo m*c tiu th, hng ho, prog} P _p bng twng
]Q
]Q

hNp hng t@n 5hof' Yc ch7ng trnh Nc thit 5 bw <ung phi
m bo Nc yu c.u phg hNp "3 m6t ch*c nxng "i cc ch7ng
trnh [ Nc thit 5 " ci 6t trc Gy ,@ng thDi phi c! <0
t7ng thch "i cc ch7ng trnh [ Nc 5i-m nghi)m trong
th0c ti1n' Trong " +, trn Gy ch8ng t# c! th- thit 5 thm
nhi3u ch7ng trnh trong mhi phGn h) lm cho 5h nxng c/# cc
phGn h) ngy cng # +ng ,gii quyt Nc ngy cng hi)u qu
cc "&n 3 m th0c t qun lo c/# +o#nh nghi)p 6t r#'
Trong " +, trn Gy ,ch8ng t# gp b# phGn h) "K# thit 5
thnh mt h) tin h%c qun lo th=ng nh&t c/# +o#nh nghi)p +i
+ng m hnh <#u GyP

M T M R L D .
!Ag '
!Ag 3
RL h?ng
R L khA
R L . S

+!Ag
1

!Ag 2

+!Ag "
+!Ag*
+!Ag 4
+!Ag T
+!Ag 16
+!Ag U
]]
]]

Trn Gy ch8ng t# [ 9:m 9;t h#i ph7ng php thit 5
gii thut c7 bn c/# trDng phi lp trnh c&u tr8c' Trong th0c
ti1n ,tuv thuc tKng bi ton c, th- m ngDi lp trnh l0# ch%n
mt trong h#i ph7ng php trn Gy' 2i 5hi ngDi t# c$n <L
+,ng 5t hNp c h#i ph7ng php "i m,c ch cu=i cgng l thit
5 Nc cc gii thut ch&t lNng,t=i u " hi)u qu'
1. ~.p' Vq D MINH Hiv THItT Kt Tid DiN
AGy giD ch8ng t# 9:m 9;t mt " +, minh ho c, th- cho
ph7ng php thit 5 gii thut tK Enh 9u=ng ' ;t bi ton tin
h%c ho phGn h) qun lo 5inh +o#nh c/# mt Trung tGm th7ng
mi ' u c.u thit 5 mt h) ch7ng trnh th0c hi)n cc ch*c
nxng np <= li)u , tnh ton " in r# cc bng twng hNp 5inh +o#nh
s thng .u nxm , s thng cu=i nxm , bng twng hNp 5inh +o#nh
c nxm ' I hnh thit 5 trnh by trong <7 @ <#u Gy P
Ru?n ly kinh dA?nh
Tinh tA?n
.h?
Tinh tA?n
8n S?ng 8n S?ng
D?u n?m
CuAi n?m
C? n?m


.h?
Tinh tA?n
8n S?ng
8n S?ng
]l
]l

Fh "y , ton b h) th=ng g@m mo+ul: trong ! c!
mo+ul: th0c hi)n cc ch*c nxng nhp li)u " tnh ton , in bng
twng hNp " mo+ul: th0c hi)n ch*c nxng thit lp IeF c/#
h) th=ng '
THItT Kt MiDULj TH 1
Th/ t,c np +> li)u s thng .u nxm
d0/8^5*0^ NH-dSiLIjU1,I&0 ]#1c1)PzI&0 "{1c'")^$^0 zI&0
))1c1)12z
b:gin
drit:lnaFh#p "#o <o li:u s th#ng +#u n#mfz
drit:aFh#p <o 5h#ch h#ng nU fz r:#+lnanfz
drit:aFh#p <o h#ng ho# mU fz r:#+lnamfz
cor iPU to n +o
b:gin
drit:a F#p t:n 5h#ch h#ng thu ,i,Pfz r:#+lna5h|i~fz :n+z
cor iPU to n +o
cor PU to m +o
b:gin
drit:aF#p 5hoi luong m#t h#ng thu ,, cu# 5h#ch h#ng,i,Ufz
r:#+lna5l|i,~fz
:n+z
cor iPU to m +o
b:gin drit:a F#p +on gi# m#t h#ng thu ,i,Pfz
r:#+lna+g|i~fz
:n+z
b:gin tongtPU}z
cor iPU to n +o
]s
]s

b:gin
tt|i~PU}z
cor PU to m +o
tt|i~PUtt|i~W5l|i,~{+g|~z
tongtPUtongtWtt|i~z
:n+z
b:gin
cor iPU to n +o
ic tt|i~U}} th:n m|i~PU ?Tz
:n+z
:n+z
:n+z

THItT Kt MiDULj TH H-I
Tnh ton 5t qu 5inh +o#nh s thng .u nxm

d0/8^5*0^ ]:1z
"#r
tgPr:#lz
<tP<tring|}~z
b:gin clr<crz
cor iPU to nt +o
cor PUiW to n +o
ic tt|i~tt|~ th:n
b:gin
tgPUtt|i~z
tt|i~PUtt|~z
tt|~PUtgz
<tPU5h|i~z
5h|i~PU5h|~z
]O
]O

5h|~PU<tz
:n+z
b:gin
cor iPU to n +o
ic tt|i~U}} th:n m|i~PU ?T
:l<: m|i~PU z
:n+z
drit:lnz
drit:lnaAXFZ TrFZ urT \qFu VrXFu s TuXFZ VX FXI
fz
drit:lna
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUfz
drit:lna +on"iPtri:u +ong fz
drit:lnaWtttttttWtttttttttttttttttttttWtttttttttttttttttttWtttttttWfz
drit:lna bTT TeF \uXYu uXFZ TqeF IX uXFZ Zuq Yu
fz
drit:lnattttttttttttttttttttttttttttttttttttttttttttttttttttttttttfz
cor iPU to n +o b:gin
drit:lna,iPO,, 5h|i~P , , tt|i~PP , ,m|i~P,fz
drit:lnattttttttttttttttttttttttttttttttttttttttttttttttttttttttttfz
:n+z
drit:lna TrFZ YrFZP , tongtPP , fz
drit:lnaWtttttttWtttttttttttttttttttttWtttttttttttttttttttWtttttttWfz
drit:lnz
r:#+lnz
:n+z

THItT Kt MiDULj TH B-
qn bng twng hNp 5inh +o#nh s thng .u nxm
]
]

d0/8^5*0^ '"W&"$1z
b:gin
drit:lnal<tfz
drit:lnal<t,AXFZ TrFZ urT \qFu VrXFu s TuXFZ VX FXI
fz
drit:lnal<t,
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUfz
drit:lnal<t, +on"iPtri:u +ong fz
drit:lnal<t,WtttttttWtttttttttttttttttttttWtttttttttttttttttttttttWfz
drit:lnal<t, bTT TeF \uXYu uXFZ TqeF IX uXFZ Zuq Yu
fz
drit:lnal<t,tttttttttttttttttttttttttttttttttttttttttttttttttttttttfz
cor iPU to n +o b:gin
drit:lnal<t,,iPO,, 5h|i~P , , tt|i~PP , ,m|i~P,fz
drit:lnal<t,tttttttttttttttttttttttttttttttttttttttttttttttttttttttfz
:n+z
drit:lnal<t, TrFZ YrFZP ,tongtPP, fz
drit:lnal<t,WtttttttWtttttttttttttttttttttWtttttttttttttttWtttttWfz
drit:lnal<tfz
r:#+lnz
:n+z
THItT Kt MiDULj TH p
Fhp <= li)u 5inh +o#nh s thng cu=i nxm
d0/8^5*0^ "#&RZ/.'^*P,I&0 ]#Pc1)PzI&0 R{:c'")^$^0zI&0
))Pc1)12z
b:gin
drit:lna9in moi nh#p "#o <o li:u s th#ng cuoi n#mfz
drit:anh#p <o 5h#ch h#ng pU fz r:#+lnapfz
]
]

drit:anh#p <o h#ng ho# qU fz r:#+lnaqfz
cor iPU to p +o
b:gin
drit:acho bi:t t:n 5h#ch h#ng thu ,i,Pfz r:#+lna5h|i~fz
:n+z
cor iPU to p +o
cor PU to q +o
b:gin
drit:aF#p 5hoi luong m#t h#ng ,, cu# 5h#ch h#ng,i,Ufz
r:#+lna5l|i,~fz
:n+z
cor iPU to q +o
b:gin
drit:a F#p +on gi# m#t h#ng thu ,i,Pfz
r:#+lna+g|i~fz
:n+z
b:gin
tongtPU}z
cor iPU to p +o
b:gin
tt|i~PU}z
cor PU to q +o
tt|i~PUtt|i~W5l|i,~{+g|~z
tongtPUtongtWtt|i~z
:n+z
:n+z
cor iPU to p +o
ic tt|i~U}} th:n m|i~PU ?Tz
:n+z
THItT Kt MiDULj TH ~
l}
l}

Tnh ton 5inh +o#nh cho s thng cu=i nxm

d0/8^5*0^ ]:Pz
"#r tgPr:#lz
<tP<tring|}~z
b:gin clr<crz
cor iPU to pt +o
cor PUiW to p +o
ic tt|i~tt|~ th:n
b:gin
tgPUtt|i~z
tt|i~PUtt|~z
tt|~PUtgz
<tPU5h|i~z
5h|i~PU5h|~z
5h|~PU<tz
:n+z
b:gin
cor iPU to p +o
ic tt|i~U}} th:n m|i~PU ?T
:l<: m|i~PU z
:n+z
drit:lnz
drit:lnaAXFZ TrFZ urT \qFu VrXFu s TuXFZ Yrq FXI fz
drit:lna
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUfz
drit:lna +on"iPtri:u +ong fz
drit:lnaWtttttttWtttttttttttttttttttttWtttttttttttttttttttWttttttWfz
drit:lna bTT TeF \uXYu uXFZ TqeF IX uXFZ Zuq Yu
fz
l
l

drit:lnatttttttWtttttttttttttttttttttWtttttttttttttttttttWtttttttttfz
cor iPU to p +o b:gin
drit:lna,iPO,, 5h|i~P , , tt|i~PP,,m|i~P,fz
drit:lnatttttttWtttttttttttttttttttttWtttttttttttttttttttWtttttttttfz
:n+z
drit:lna TrFZ YrFZP , tongtPP, fz
drit:lnaWtttttttWtttttttttttttttttttttWtttttttttttttttttttWttttttWfz
r:#+lnz
:n+z
THItT Kt MiDULj TH
qn bng twng hNp 5inh +o#nh s thng cu=i nxm
d0/8^5*0^ '"W&"$Pz
b:gin
drit:lnal<tfz
drit:lnal<t, AXFZ TrFZ urT \qFu VrXFu s TuXFZ Yrq FXI
fz
drit:lnal<t,
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUfz
drit:lnal<t, +on"iPtri:u +ong fz
drit:lnal<t,WtttttttWtttttttttttttttttttttWtttttttttttWtttttttttWfz
drit:lnal<t, bTT TeF \uXYu uXFZ TqeF IX uXFZ Zuq
Yu fz
drit:lnal<t,tttttttWttttttttttttttttttWtttttttttttttWtttttttttttfz
cor iPU to p +o b:gin
drit:lnal<t,,iPO,, 5h|i~P , , tt|i~PP,,m|i~P,fz
drit:lnal<t,tttttttWttttttttttttttWtttttttttttttttttttWtttttttttttfz
:n+z
drit:lnal<t, TrFZ YrFZP , tongtPP, fz
l
l

drit:lnal<t,WtttttttWtttttttttttWtttttttttttttttttttWtttttttttttWfz
r:#+lnz
:n+z
THItT Kt MiDULj
Tnh ton twng hNp 5inh +o#nh c nxm
d0/8^5*0^ W&"$Qz
b:gin
clr<crz
cor iPU to n +o
b:gin
cor PU to n +o
b:gin ic 5h|i~U5h|~ th:n
b:gin
tt|i~ PU tt|i~ W tt|~z
tt|~PU}z
:n+z
:n+z
ic tt|i~ }} th:n m|i~PU ?Tz
:n+z
drit:lnz
drit:lna AXFZ TrFZ urT \qFu VrXFu YX FXI
fz
drit:lna
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUfz
drit:lna +on"iPtri:u +ong fz
drit:lnaWtttttttWtttttttttttttttWtttttttttttttttttttWtttttttttttWfz
drit:lna bTT TeF \uXYu uXFZ TqeF IX uXFZ Zuq Yu
fz
drit:lnatttttttWtttttttttttttttttWtttttttttttttttttttWtttttttttttfz
lQ
lQ

cor iPU to n +o b:gin
drit:lna,iPO,, 5h|i~P , , tt|i~PP , ,m|i~P,fz
drit:lnatttttttWtttttttttttttttttWtttttttttttttttttttWtttttttttttfz
:n+z
PU}z
cor iPU to p +o
ic tt|i~} th:n
b:gin
PUWz
drit:lna,WnPO,, 5h|i~P , , tt|i~PP,,m|i~P,fz
drit:lnatttttttWttttttttttttttttWtttttttttttttttttttWtttttttttttfz
:n+z
drit:lna TrFZ YrFZP , tongtWtongtPP, fz
drit:lnaWtttttttWtttttttttttttttWtttttttttttttttttttWtttttttttttWfz
r:#+lnz
:n+z
THItT Kt MiDULj
qn r# bng twng hNp 5inh +o#nh c nxm
d0/8^5*0^ '"W&"$Qz
b:gin
drit:lnal<tfz
drit:lnal<t, AXFZ TrFZ urT \qFu VrXFu YX FXI
fz
drit:lnal<t,
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUfz
drit:lnal<t, +on"iPtri:u +ong fz
drit:lnal<t,WtttttttWttttttttttttttWtttttttttttttttttttWtttttttttttWfz
l]
l]

drit:lnal<t, bTT TeF \uXYu uXFZ TqeF IX uXFZ Zuq Yu
fz
drit:lnal<t,tttttttWttttttttttttWtttttttttttttttttttWtttttttttttfz
cor iPU to n +o b:gin
drit:lnal<t,,iPO,, 5h|i~P , , tt|i~PP , ,m|i~P,fz
drit:lnal<t,tttttttWttttttttttttttWtttttttttttttttttttWtttttttttttfz
:n+z
PU}z
cor iPU to p +o
ic tt|i~} th:n
b:gin
PUWz
drit:lnal<t,,WnPO,, 5h|i~P , ,
tt|i~PP,,m|i~P,fz
drit:lnal<t,tttttttWtttttttttttttttWtttttttttttttttttttWtttttttttttfz
:n+z
drit:lnal<t, TrFZ YrFZP , tongtWtongtPP,
fz
drit:lnal<t,WtttttttWttttttttttttWttttttttttttttttWtttttttttttWfz
r:#+lnz
:n+z
THItT Kt MiDULj
Thit 5 th0c 7n

AeZqF
tho#tPUc#l<:z
r:p:#t
clr<crz
t:9tcoloradhit:fz
ll
ll

b:gin
drit:lnz
drit:lna AXFZ IeF fz
drit:lna ' _XT AXFZ urT VrFZ \qFu VrXFu s TuXFZ VX FXI
fz
drit:lna ' _XT AXFZ urT VrFZ \qFu VrXFu s TuXFZ Yrq
FXIfz
drit:lna Q' _XT AXFZ urT VrFZ \qFu VrXFu YX FXI fz
drit:lna ]' qFAXFZ fz
drit:lna l' qFAXFZ fz
drit:lna s' qFAXFZQ fz
drit:lna O' TurXT \urq YurFZ TmqFu fz
t:9tcolorafz
drit:a Irq AXF YurF IrT TmrFZ O brP fz
r:#+lna5fz
drit:lnz
c#<: 5 oc
P b:gin clr<crz
nh#p<oli:ua5h,n, m,ttfz 5qz r:#+lnz
:n+z
P b:gin clr<crz
nh#p<oli:ua5h,p,q,ttfz 5qz r:#+lnz
:n+z
QP b:gin b#ngQz r:#+lnz :n+z
]P b:gin inb#ngz r:#+lnz :n+z
lP b:gin inb#ngz r:#+lnz :n+z
sP b:gin inb#ngQz r:#+lnz :n+z
OP tho#tPUtru:
:l<:
b:gin drit:lnab#i , "#o l#ifz r:#+lnz :n+z
:n+z
ls
ls

:n+z
until tho#tz drit:lnachuong trinh 5:t thucfz
r:#+lnz
eFV'
b#u 5hi bw <ung thm mt <= m t b#n .u cho cc bin ton c,c
ch8ng t# <H mt c! ch7ng trnh hon chEnh
dRiGR-M mU-NLlKINHDi-NHz
<:< crt,print:rz
typ:
mt U #rr#y |''l}~ oc r:#lz
mt U #rr#y |''s}~ oc <tring|Q}~z
mtQ U #rr#y |''l},''s}~ oc r:#lz
"#r
5h,5hPmtz
+g,+gPmtz
tt,tt,titrongPmtz
5l,5lPmtQz
m,mPmtz
i,,p,q,m,n,5 Pint:g:rz
tho#tPbool:#nz
tongt,tongtPr:#lz
Troc:+ur: FuXTbr_qea"#r 5hPmtz"#r n,mPint:g:r z"#r
ttPmtfz
''''''''
Troc:+ur: FuXTbr_qea"#r 5hPmtz"#r n,mPint:g:r z"#r
ttPmtfz
''''''''
Troc:+ur: 5qz
lO
lO

'''''''''
Troc:+ur: inb#ngz
'''''''''
Troc:+ur: nh#p<oli:ua"#r 5hPmtz"#r p,qPint:g:rz"#r
ttPmtfz
'''''''''''
Troc:+ur: 5qz
'''''''''''
Troc:+ur: inb#ngz
''''''''''''
Troc:+ur: b#ngQz
Troc:+ur: inb#ngQz
'''''''''''''
a { Yh7ng trnh chnh f

BjGIN
tho#tPUc#l<:z
r:p:#t
clr<crz
t:9tcoloradhit:fz
b:gin
drit:lnz
drit:lna AXFZ IeF fz
drit:lna ' _XT AXFZ urT VrFZ \qFu VrXFu s TuXFZ VX FXI fz
drit:lna ' _XT AXFZ urT VrFZ \qFu VrXFu s TuXFZ Yrq FXIfz
drit:lna Q' _XT AXFZ urT VrFZ \qFu VrXFu YX FXI fz
drit:lna ]' qFAXFZ fz
drit:lna l' qFAXFZ fz
l
l

drit:lna s' qFAXFZQ fz
drit:lna O' TurXT \urq YurFZ TmqFu fz
t:9tcolorafz
drit:a YurF IrT TmrFZ O brP fz
r:#+lna5fz
drit:lnz
c#<: 5 oc
1c b:gin clr<crz
nh#p<oli:ua5h,n, m,ttfz 5qz r:#+lnz
:n+z
PP b:gin clr<crz
nh#p<oli:ua5h,p,q,ttfz 5qz r:#+lnz
:n+z
QP b:gin b#ngQz r:#+lnz :n+z
pc b:gin inb#ngz r:#+lnz :n+z
~c b:gin inb#ngz r:#+lnz :n+z
c b:gin inb#ngQz r:#+lnz :n+z
c tho#tPUtru:
:l<:
b:gin drit:lna"#o <#i, moi "#o l#ifz r:#+lnz :n+z
:n+z
:n+z
until tho#tz drit:lnachuong trinh 5:t thuc fz
r:#+lnz
jND.

l
l



CoU HI N Td CHNG 1
1 t Trnh by 5hi ni)m c&u tr8c +> li)u " gii thut k Yho " +,
P t Trnh by m=i lin h) ch6t chH gi># c&u tr8c +> li)u " gii
thut k \hi c&u tr8c +> li)u th#y wi th gii thut 9L lo c! th#y
wi 5hngk Ti <#ok
Q t \hi ni)m c&u tr8c lu tr> k b0 lin qu#n gi># c&u tr8c +>
li)u " c&u tr8c lu tr>k
p t Trnh by cc ph7ng php +i1n t gii thutk Yho " +, k
~ t \hi ni)m m+un ho k Ti <#o phi phGn chi# bi ton ln
thnh cc m+un nh4 k
t Trnh by ph7ng php thit 5 Top +odn +:<ign k Yho " +,
minh hok
t Th7ng php thit 5 Aootom up +:<ign k Yho " +, minh
ho k
t \o php ch> r ln no l t=t nh&t - bi-u +i1n nh>ng thDi
gi#n tnh ton trn GyP
Tanf U }}n _ogn W}}}
Tanf U WW]W''''antf
Tanf U n W nWO
s}
s}

t 2=i "i on ch7ng trnh TXbYX_ +i Gy,h[y 9c Bnh
5o php Yh> r ln t=t nh&t - bi-u +i1n thDi gi#n tnh ton c/#
trDng hNp t@i nh&t nh l mt hm c/# nP

bum U}z
yor iPU to n +o
A:gin
m:#+_na9fz
bumPU bumW9z
:n+z
I:#nPU bumnz

1O 2=i "i on ch7ng trnh TXbYX_ +i Gy th0c hi)n
cng h#i m# trn,h[y 9c Bnh 5o php Yh> r ln t=t nh&t -
bi-u +i1n thDi gi#n tnh ton c/# trDng hNp t@i nh&t nh l mt
hm c/# nP

yor iPU to n +o
yor PU to n +o
m:#+_naX|i,~z
yor iPU to n +o
yor PU to n +o
m:#+_naA|i,~z
Y|i,~PU X|i,~WA|i,~z
11O c Bnh ph*c tp c/# on ch7ng trnh <#u Gy P
yor i P U to nt +o
yor PU qW to n +o
ic #|i~ #| ~ th:n
s
s

b:gin
tgP U #|i~z
#|i~P U#|~z
#| ~ P U tg
a{ 2wi chh #|i~ " #|~ {f
^"5z
1P O Zii thut tnh c <= chung ln nh&t c/# h#i <= nguyn
+7ng p " q a pqf mo t nh <#u P
Z%i r l<c <= + c/# ph;p chi# p cho q
t Fu r U} th q l bY_F c/# p " q
t Fu r } th gn q cho p , gn r cho q r@i l6p li qu trnh ny '
(it gii thut ) qui tm bY_F c/# p " q k
1Q t (it mt th/ t,c ) qui th0c hi)n "i)c in o ngNc mt +[y
5o t0 cho trc k Yhpng hn , cho +[y eTuFq\YruFqT <H in
thnh +[y TqFurY\qFuTe

s
s

You might also like