!" "" #$%&'
(
)'*+,-
TOÁN CHO KHOA HỌC MÁY TÍNH
Hàm sinh và ứng dụng
Phân tích một số thuật toán sắp xếp
./0#
PGS.TS. NGUYỄN PHI KHỨ
/'#
CH1301001 – NGUYỄN TUẤN AN
!" "" #$%&'
(
MỤC LỤC
!" "" #$%&'
(
A Hàm sinh xác suất
I Tổng quan hàm sinh
1234567-819:7;<:7-
7=>%?@ABC:
#D"E EFE###GH#=7
IJ%1J1237?5K:B
1231LM:2:#
.NOD
PI7LK::5?QPB123A8R*
6STNU"O25%V1WWXTSYWWXT?
/PZB1231LM:[8.NO9\1237]
S8I7B9\123R^_76`
a?
3
!""
#
$!%8:9
.
@
NODhN
@
OD<m
&!'
#
(
)*+#(8:9
&
,
--.#
(
/!'0",18:9
&
,
#2
#(
/3!!,13!!48:9
&
,
o
NODNoDSO
$.
@
D.
o
89FJ%9V:?
/#$@9P<D 8:9\S=7`#
@q.bb7NO
(NOPK:@8:9\123
S
DN@DSO
6`7\S:(NO7B71^
S
DVK:
S
E
^S(NOS=e9=c<:11^D"
i:9\_71LM:K:PK:@?
K:oDN@O=
.
o
NOD.
N@O
NODhN
N@O
OD
$S1lf89\V.
o
@
NOSD 8]
Dhr@N@ OdN@7m Os
Chứng minh
NODr.
@
NOs
Drs
D
Nf4S,aS15BO?BPWWj 8]#
N ODhr@N@n OdN@7m Os8 7U
$7:#
N ON^N OODhN@O
/
N ON^N OODhr@N@n Os
DhN@
F
OhN@O
D/:7N@OmrhN@Os
F
hN@O
/]
/:7N@ODN OrN O
F
smN O?
/#$@qNuO8]
.
@
NODb
uNn O
v
NOD.
@mo
NOD.
@
NO.
o
NO
Chứng minh
.
v
NODhN
v
ODhN
@mo
O
DhN
@
OhN
o
O N1=O
D.
@
NO.
o
NO
Hệ quả
$@
8d8@
'7B1=)b7==
8
!" "" #$%&'
(
Q^@DD=231i7=e?']K:@w
Giải: 'xI=e41=:8y 8dy1=?
.
@
NOD.
y
8.
yF
8d.
y
NO?
$2.
y
NOD<m8yD 8d?
.
@
NODN<mO
D
N@DODVK:
7.
@
NO
Dm<
n
NOO
Chứng minh :':9
NODhNO
D N1ZSVP$O
D
D
D NV<f1J72P19O
D.$N.@NOO Nb1LM:K:.
$
O
Hệ quả
OhNz
$
ODhN$O?hN@O
rNOsDr.
$
N.
@
NOOs
D? SD.
@
NO
Q^D 8N]%D.
@
N OD O8:9
hNz
$
ODrs?rsDhN$O?hN@O
'2lH:9\%=7`
12
!" "" #$%&'
(
VII Quá trình phân nhánh
1. Định nghĩa
@Af%\7:71\|:17<7]
7:\P?':7`
>?$$@8A0#B$C"DE"F'GH$C'0H I)*
>?$$@8A0#B$CD@J'KLHH$C! !#B$C;D@JMNOP
NDSOD
S
8SD"8 8Fd
zH7\1R<e\7<7]|:8123-=<7]
#,]7\1lf8*7:<:VK:<e\?
Q^@
D\7:7|:
zH7\K:<e\123,f6`B@
"
8@
8@
F
8d':@
"
D 861e
P\1L
%<e\123\V2:#
':9\p1\%V<7]%
/]8@
=5K:acS,123%H:8:9
.
NOD.
n
N.NOO PDF8!d
/1Z%k1iD ?t^=*S<f%8:9
.
=<e\K:.
hN@ODhN@n O•
•DhNO=>M:S2P<e\?019
14
!" "" #$%&'
(
9%=
'2lH
Ví dụ 1 :
}\7:1231LM:]-
S
D<
S
8SD"8 8F8dE"X X 8P~<
Giải: K:=
':ef<%.
NOD.
16
!" "" #$%&'
(
B Phân tích một số thuật toán sắp xếp
I Định nghĩa độ phức tạp
'|:%SHVS,[6f
1987:;p%x%?Q\1V<fK:
89\AAfHVSHV%?',
2|A123HV•K:68=1=PK:
1e?/]độ phức tạp thuật toán=1e?'%c7
IH&8i:S,e6%[e6
2P=231KK:i?
Q\2P=231*K::2|pSV6‚n=P6
ƒN6'b:O?
=1=P1e?'p%x6 9\I7L
S:?„*86:x:] =e:x:?$Z
67L8„*:] =I9M:e1*123?'7
A1P:7] =^K::7?
Q*K:6 ?…1%:S,[1^721
*6_=23A8p1*=235<=QB
OR ?Q99\==23AN9\f=e7%6P8^
6POE2k9\=|:HV2l7]NDE$ST/
$U0O^=236Pef1\*%2l7]NDE$ST/
$K0O?
@A<:VI:%c1=P1e82]123`
8 S, 8:P 1K=P8 1Z2l
]:991*• ?
1*2|^1P,2|R9#
17
Cài đặt :
‰Sz7N‡=::rs8=87O
C
8ŠE
E
D=E
ŠD7E
D:rN=m7O†FsE
C
‹=bN:rsXOmmE
‹=bN:rŠsŒOŠnnE
‡NŠXDŠO
C
‡NXŠO
C
bD:rsE
:rsD:rŠsE
:rŠsDbE
G
mmE
ŠnnE
G
G
‹=bNXŠOE
‡N=XŠO‰Sz7N:8=8ŠOE
‡NX7O‰Sz7N:887OE
G
Đánh giá thuật toán
V0$F$W$X#LA0$F!H$Y$E/!/X$9H I'$0$BZ
Cài đặt
zb==z7N‡=::rs88SO
C
b88ŠE
E
‡7NbD EbXDSEbmmO
C
‡7ND EXDEmmO
C
D:rsE
ŠDn E
‹=bNNX:rŠsOŽŽNŠŒD OO
C
:rŠm sD:rŠsE
ŠDŠn E
G
:rŠm sDE
G
G
G
20
!" "" #$%&'
(
Đánh giá thuật toán
o<%1LK:=-Sf7
x62P62PS?$2f€:F1ZSV:#
Œ
m
bD:rŠsE
:rŠsD:rŠn sE
:rŠn sDbE
G
G
Phân tích thuật toán
'%:%A==,S,158S,]
7*6:1eK:J%?/P6SY8:=,f/rŠsP/rŠn s8Š*%x
1m 8:nA?'cI:8*%x 1n ?/%:123
A5#•NnOP*%x 1n DNn OmNnFOmdm DNn
O†F?
21
!" "" #$%&'
(
zALN2l12l!AO=*]7*6:1e
K:J%?\2:#
•'72|3#0J%6:1e1J9H?':%:%:S,
AL?
•'72|3#0J%6:1e9H23?@A6SY8:%
7`B=e:rŠsP:rŠn s8:1ZfHVL?QZ%9
M:=AL6`Nn O†F?
V\"T0]DE$STA066"_! $E`
)
!'9 @U
$J
22
!" "" #$%&'
(
Đánh giá
)7c:H\6lZk2