ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
ý¤õ ý±Âõ ø ý¥¨°Âõ
ýø¤ Â
≤ (total order)
Û õ î ° Â ý Î ¤ ø
a1, a2, . . . , an
ý ûÀ Ü î Â Ê ä
n
.À÷ùÀª ù¢¢ ûÀÜî
:îý¤Ï Àî À ¤ ùÀª ù¢¢ Â¬ä ¥
π
´Èðý
ý¥¨°Âõ ÓþÂã
aπ(1) ≤ aπ(2) ≤ . . . ≤ aπ(n)
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
1
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
ý¤ø¢þ
.Àª ý¤Áð ø ü¥ ,ö¤Öµõ÷ Âð ´¨ (partial
Âû ý Âð ,´¨ Ûõî °Â ýΤ
A
order) üþà °Â Τ ×þ
ýäÞ¹õ ýø¤ Â
.bRa þ
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
2
R
üþà °Â ýΤ
aRb ݪ µª¢ a, b ∈ A
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
ý¥¨°Âõ ýûݵþ¤Úó ýÀµ¨¢
(¢ª üõ ù¡£ ¹î ¤¢ ù¢¢ üãþ)
ý¥¨°Âõ öõ¥ ¤¢ ûù¢¢ ´ãìõ ÂÑ÷ ¥ (1
(external) ü¤¡
/
(internal) üÜ¡¢
/
ý¥¨°Âõ ¥ Ьä ü±Æ÷ °Â ÐÔÂÑ÷ ¥ (2
(unstable) ¤Àþ÷
/
(stable) ¤Àþ
/
ûù¢¢ ý¥¨°Âõ ýù½÷ ÂÎ÷ ¥ (3
(Àîüõ °Âõ ¬ä ýÆþÖõ )
(comparison
(non-comparison
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
3
sort) ýÆþÖõ /
sort)
ýÆþÖõ Âè
/
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
ý¥¨°Âõ ýûݵþ¤Úó ßþ öÂî
.´¨
Ω(n) ý¥¨°Âõ ݵþ¤Úó Âû ý öõ¥ •
´ó ¤¢ Ýû ø ´ó ßþÂÀ ¤¢ Ýû ýÆþÖõ ý¥¨°Âõ ݵþ¤Úó Âû ý öõ¥
.´¨
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
4
•
Ω(n lg n) ßÚ÷õ
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
(Lexicographic Ordering) üþ±Ôó °Â ÓþÂã :ý¤ø¢þ
:Âê
~a = a1a2 · · · ai · · · an
~b = b1b2 · · · bi · · · bm
,ak
< bk
ø
.ai
ai = bi ,i < k ≤ n ýÂ Âð ~a ≤ ~b Ýþðüõ
= bi
ݪ µª¢ 1
≤ i ≤ n ýÂ ø n < m þ
f ·õ
ab < abc < adc < adda
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
5
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
´ó ßþÂÀ ¤¢ ßþ öÂî ±
(Decision
Tree) ÝÞÊ ´¡¤¢
.¢Âî ñÀõ Âþ¥ ýûüðÄþø ´¡¤¢ ×þ öüõ ¤ ýÆþÖõ ݵþ¤Úó Âû
Û õ ª ´ ó Â û .A
= [a, b, c]
"ÜÿÆõ ´ó'
•
(ãÈ÷ ×þ ÆþÖõ Âû) ´¨ Ûõî üþø¢ø¢ ´¡¤¢
•
üþú÷ ´ó ûïÂ
•
ýø¤  ü ¤¢ ý¥ ¨°  õ ýÂ Ý Þ Ê ´ ¡¤¢ :ñ · õ
.´¨ °Âõ ¬ä ߨÞõ ýû´Èðý ýÞû
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
6
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
abc
acb
bac
bca
cab
cba
Yes
Swap
bac
bca
cba
Yes
Swap A[2] > A[3]?
(a > c?)
bca
cba
A
bca
Yes
Swap A[1] > A[2]? No
(b > c?)
cba
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
$
A
abc
A[1] > A[2]?
(a > b?)
No
abc
acb
cab
A
bac
A
abc
No
Yes
A[2] > A[3]?
Swap
(c < b?)
No
acb
cab
bac
abc
A
acb
Yes A[1] > A[2]? No
Swap
(b > c?)
cab
bca
7
acb
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
Ìì ø Ýó À
.¢¤¢ ï 2h ·îÀ
h áÔ¤ üþø¢ø¢ ´¡¤¢ ×þ
.(Àî ö½µõ) ¢ªüõ ±
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
8
:Ýó
h ýø¤ ÂÖµ¨ Ìì ßþ
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
Ìì ø Ýó À
.¢¤¢ ï 2h ·îÀ
h áÔ¤ üþø¢ø¢ ´¡¤¢ ×þ
.(Àî ö½µõ) ¢ªüõ ±
:Ýó
h ýø¤ ÂÖµ¨ Ìì ßþ
? üþø¢ø¢ ø Ûõî üþø¢ø¢ ?¢¤¢ ï À ÛìÀ :µØ÷
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
9
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
Ìì ø Ýó À
.¢¤¢ ï 2h ·îÀ
h áÔ¤ üþø¢ø¢ ´¡¤¢ ×þ
.(Àî ö½µõ) ¢ªüõ ±
:Ýó
h ýø¤ ÂÖµ¨ Ìì ßþ
? üþø¢ø¢ ø Ûõî üþø¢ø¢ ?¢¤¢ ï À ÛìÀ :µØ÷
.Àª µª¢ À÷¥Âê ÂÔ¬ þ ø¢ ùÂð Âû î üþø¢ø¢ ´¡¤¢ ýÂ
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
10
h + 1 ø ý¢ä
´¡¤¢ ý 1 :
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
Ìì ø Ýó À
.¢¤¢ ï 2h ·îÀ
h áÔ¤ üþø¢ø¢ ´¡¤¢ ×þ
.(Àî ö½µõ) ¢ªüõ ±
.´¨
&
ü¨Àì ÀÞ½õ
c
h ýø¤ ÂÖµ¨ Ìì ßþ
dlog n!e ÛìÀ Àîüõ °Âõ ¤ ÂÊä n î ÝÞÊ ´¡¤¢ ×þ áÔ¤
1389 ý¢ 18
11
:Ýó
:¹µ÷
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
Ìì ø Ýó À
.¢¤¢ ï 2h ·îÀ
h áÔ¤ üþø¢ø¢ ´¡¤¢ ×þ
.(Àî ö½µõ) ¢ªüõ ±
&
h ýø¤ ÂÖµ¨ Ìì ßþ
dlog n!e ÛìÀ Àîüõ °Âõ ¤ ÂÊä n î ÝÞÊ ´¡¤¢ ×þ áÔ¤
:¹µ÷
dlog n!e ÛìÀ ÇäÔ¤ ßþ ,¢¤¢ ï n! ÛìÀ ÝÞÊ ´¡¤¢ ßþ
:±
.´¨
.´¨
:Ýó
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
12
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
Ìì ø Ýó À
.¢¤¢ ï 2h ·îÀ
h áÔ¤ üþø¢ø¢ ´¡¤¢ ×þ
.(Àî ö½µõ) ¢ªüõ ±
h ýø¤ ÂÖµ¨ Ìì ßþ
dlog n!e ÛìÀ Àîüõ °Âõ ¤ ÂÊä n î ÝÞÊ ´¡¤¢ ×þ áÔ¤
:¹µ÷
dlog n!e ÛìÀ ÇäÔ¤ ßþ ,¢¤¢ ï n! ÛìÀ ÝÞÊ ´¡¤¢ ßþ
:±
.´¨
.´¨
ÛìÀ ´ó ß þÂÀ ¤¢ À îü õ °Â õ ¤ ÂÊ ä
n
î ýÆþ Ö õ Ý µ þ¤ Úó Â û :¹ µ ÷
.Àû¢üõ ô¹÷ ý¢ø¤ø ¬ä ß ÆþÖõ
&
:Ýó
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
13
dlg n!e
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
.. î Ý÷¢üõ õ
Ù óÂ µ ¨ ° þÂ Ö .´ ¨ ü Ô ã ® ý öÂ î ß þ ü óø .lg n!
≤ n lg n
:Ýþ¤¢ °þÂÖ ßþ §¨Â .Àû¢üõ ¤ ý öÂî (Stirling’s
n! =
√
2πn
n
e
n
1
Å ,n!
≤ nn
Approximation)
1
+ Θ
n
:î ¢Âî ± öüõ ñõÂê ßþ ¥ ù¢Ôµ¨
n! = o(nn )
n! = ω(2n)
lg(n!) = Θ(n lg n)
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
14
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
ßÚ÷õ ´ó ¤¢ ßþ öÂî
?Ýî ± Àþ ¤ Ã ? üãþ
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
15
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
ßÚ÷õ ´ó ¤¢ ßþ öÂî
ÂûÒ ý¢ø¤ø ¤¢ ö¨×þ ñÞµ üþ n °Â ×þ ýû´Èðý ýÜî Âð :Ìì
.¢ Àû¡
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
lg n! ÛìÀ ÝÞÊ ´¡¤¢ ýûï ÕÞä ßÚ÷õ ùðö ,À÷ª
16
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
ßÚ÷õ ´ó ¤¢ ßþ öÂî
Âê :±
ø
.Àª ïÂ
m T
T
üþø¢ø¢ ´¡¤¢ ×þ ýûï ÕÞä áÞ¹õ
üþø¢ø¢ ýû´¡¤¢ ýÜî ýÂ
D(T ) •
D(T ) ¤ÀÖõ ßþÂ×î D(m) •
Ω(lg n!) ÝÞÊ ´¡¤¢ ýûï ÕÞä ßÚ÷õ ⇐= ,D(m) ≥ m lg m Ýîüõ ´
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
17
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
± ýõ¢
.D(m)
≥ m lg m î Ýîüõ ´ ÂÖµ¨
m=1
.´¨ ¼®ø
.´¨ ´¨¤¢
.(Ýû¢üõ öÈ÷
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
Tk
18
m<k
) ÀþÂÚ ÂÑ÷ ¤¢ ¤ ïÂ
:þ (1
ýÂ :Âê (2
k
T
:ÝØ (3
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
Tk
Tk−i
Ti
ïÂ
ïÂ
i
k−i
D(T ) = i + D(Ti) + (k − i) + D(Tk−i)
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
19
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
Tk
Tk−i
Ti
ïÂ
ïÂ
i
k−i
D(T ) = i + D(Ti) + (k − i) + D(Tk−i)
D(k) = min {k + D(i) + D(k − i)}
1≤i≤k
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
20
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
Tk
Tk−i
Ti
ïÂ
ïÂ
i
k−i
D(T ) = i + D(Ti) + (k − i) + D(Tk−i)
D(k) = min {k + D(i) + D(k − i)}
1≤i≤k
D(k) ≥ k + min {i lg i + (k − i) lg (k − i)}
1≤i≤k
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
21
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
± ýõ¢
.Àµêüõ ëÔ
i = 2k
¤¢
i lg i + (k − i) lg (k − i) ýÞî ¤ÀÖõ üã±Ï ¢Àä ýÂ
Å
D(k) ≥ k + k lg
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
22
k
2
= k lg k
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
üΡ ý¥¨°Âõ
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
23
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
(Count Sort) üª¤Þª ý¥¨°Âõ
m 1 ß ýûÀÜî ÂÊä n
:ý¢ø¤ø
Count-Sort (A, B, m)
1 for i ← 1 to m
2
do C[i] ← 0
3 for i ← 1 to length[A]
4
do C[A[i]] ← C[A[i]] + 1
5 for i ← 2 to m
6
do C[i] ← C[i] + C[i − 1]
7 for i ← length[A] downto 1
8
do B[C[A[i]] ← A[i]
9
C[A[i]] ← C[A[i]] − 1
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
24
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
?´¨ ´¨¤¢ Â
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
25
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
?´¨ ´¨¤¢ Â
.Ýþ¤Þªüõ ¤ ö¨×þ ÀÜî Â¬ä ¢Àã 4 ÂΨ ¤¢
ö ¤¢
A[i] ÀÜî ¬ä î ´¨ B
ýþ¤ ÅþÀ÷ ßþ¡
•
C[i] ,5 ýÖÜ öþ ¤¢ •
.À÷Âðüõ ¤Âì
ô¹÷ ¤Àþ ¤¬ ¤îßþ .À÷Âðüõ ¤Âì öª¢¡ ý ¤¢ ¬ä 7 ýÖÜ ¤¢
•
.¢ªüõ
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
26
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
Ûܽ
¤Àþ ݵþ¤Úó î ´¨ ö ¢ªüõ ¤ÂØ
A
.O(n) Â öõ¥
•
ýÀµ úµ÷ ¥ ÖÜ ßþ îö Ûó¢
•
.¢ª
Ûî ý öõ¥ Àª
O(n) ¥ m Âð î Àªüõ O(n + m) ݵþ¤Úó Ûî ý öõ¥ •
.¢ Àû¡
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
27
O(n)
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
«¡ ´ó
.ÀµÆû
n 1 ¢Àä ¬ä ýûÀÜî
Count-Sort (A, n)
1 for i ← 1 to n
2
do while key[A[i]] 6= i
3
do Swap(A[i], A[key[A[i]]])
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
28
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
?´¨ ´¨¤¢ Â
.Àîüõ °Âõ "¤¢' ¤¬ ݵþ¤Úó
.¢¡ üþú÷ ý ¤¢ ÂÊä ø¢ þ ×þ
.ÀµÔ ÖÜ ¤¢ ´¨ ߨÞõ ݵþ¤Úó
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
29
•
← Ëþã ¤ Âû •
← ¢Àä ×þ ¥Ç ÀÜî Âû ¥ •
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
(Radix Sort) üþ±õ ý¥¨°Âõ
(¢¤¢ ´þóø ô
i − 1  ô i Ýì¤) ý¢ø¤ø ¢Àä ýûÝì¤ ¢Àã d
Radix-Sort (A, d)
1 for i ← 1 to d
2
do sort array A on digit i by a stable sort
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
30
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
?Àª±÷ öÆØþ ý¢ø¤ø ýûÝì¤ ¢Àã Âð
i ýø¤  ÂÖµ¨
.À÷°Âõ öªÀÜî
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
•
i 1 û´ °ÆÂ ¬ä i ýÜÂõ ýúµ÷ ¤¢ •
O(dn) Â öõ¥
&
:ݵþ¤Úó üµ¨¤¢
•
31
.¢¤¢ üÚµÆ ôø¢ ݵþ¤Úó  öõ¥
•
:Ýî ù¢Ôµ¨ üª¤Þª ý¥¨°Âõ ¥ Âð
•
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
üÜî ´ó ¤¢ üþ±õ ý¥¨°Âõ
(û¤î ¥ µ¨¢ ×þ) ,û¢¤î¤ ¥ ýþ¤ ý¢ø¤ø
,t1 . . . tk ýû÷ðù¢¢ ¥ °Â
.´¨
&
ü¨Àì ÀÞ½õ
c
n ¥ ÛÖµÆõ ø ¢øÀ½õ
1389 ý¢ 18
f1 . . . fk
ýÀÜî ý¤¢ ¢¤î¤ Âû
•
Àª µª¢ À÷üõ ti ÷ðù¢¢ Âû î ýÂþ¢Öõ ¢Àã
•
32
ýÔóõ
b
k
•
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
(Bucket Sort) üÜΨ ý¥¨°Âõ
Bucket-Sort (A)
. Àîüõ °Âõ ¤ A ´Æó î üÜΨ ý¥¨°Âõ
1 for i ← 1 to k
2
do for each value v of type ti
3
do make Bi[v] empty
4
for each record r in list A in order
5
do let v be the value of fi of the key for r
6
move r from A to the end of Bi[v]
7
for each value v of type ti from lowest to highest
8
do concatenate Bi[v] to the end of A
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
33
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
ý ûô ÷ Ô ó õ
b
k
$
ýÀ Ü î ý¤¢ ¢¤ î¤ Â û î ,¢¤ î¤
t1 . . . tk
n
A
ýû÷ðù¢¢ ¥
si
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
: array[ti ] of list-type
34
f1 . . . fk
 ti ýû´ó ¢Àã
.¢¤¢ ´þóø
a
.Bi
´ Æ ó :ý¢ø¤ø
fi−1
:Ýþ¤¢ (1
Â
fi
:Âê
•
•
•
≤ i ≤ k) ýÂ •
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
öõ¥ ¤¢ (concat) ë½ó ÛÞä ,Ýî ý¥¨ù¢ Ó¬ ×þ ¤¬ ¤ ÛΨ Âû Âð
•
.´¨ Â Ûì ´
: ´¨  ݵþ¤Úó ßþ  öõ¥
k
X
i=1
Θ(si + n) = Θ(kn +
k
X
i=1
si )
ùð ö
T (n) = Θ(kn +
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
k
X
i=1
•
si = Θ(n) Âð
n) = Θ(n + kn) = Θ(n)
35
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
.1300 . . . 1400 ø 1 . . . 100 ,a..z Âþ¢Öõ Ôóõ ¨ Ûõª ûÀÜî :ñ·õ
b
ÂÊä
a1
a2
a3
a4
a5
a6
a7
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
f3 f2
a 5
c 12
b 12
a 8
z 10
b 12
a 6
36
f1
1320
1310
1305
1400
1308
1304
1310
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
ÂÊä
a1
a2
a3
a4
a5
a6
a7
ý¢ø¤ø
a1
a2
a3
a4
a5
a6
a7
&
ü¨Àì ÀÞ½õ
c
B1[.]
[1304] a6
[1305] a3
[1308] a5
[1310] a2, a7
[1320] a1
[1400] a4
1389 ý¢ 18
1 üøÂ¡
a6
a3
a5
a2
a7
a1
a4
f3
a
c
b
a
z
b
a
f2
f1
5
1320
12
12
1310
1305
8
1400
10
12
1308
1304
6
1310
B2[.]
[5] a1
[6] a7
[8] a4
[10] a5
[12]a6, a3, a2
37
$
2üøÂ¡
a1
a7
a4
a5
a6
a3
a2
B3[.]
[’a’] a1, a7, a4
[’b’] a6, a3
[’c’] a2
[’z’] a5
3 üøÂ¡
a1
a7
a4
a6
a3
a2
a5
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
âþ¨ ý¥¨°Âõ :ýÆþÖõ ý¥¨°Âõ
¤¢ ß Ú ÷ õ´ ó ¤¢ ø
O(n)2
´ ó ß þ À ¤¢ ¤ Â Ê ä
n
â þÂ ¨ ý¥ ¨° Â õ
.Àîüõ °Âõ
.´¨ ×î
f õî
O(n lg n)
n lg n ´ °þ® •
.Àªüõ ¤î Ã÷ ý¥õ ø ü¤¡ ýÑê ýûͽõ ý ݵþ¤Úó ßþ
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
38
•
•
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
ݵþ¤Úó Ó¬ :âþ¨ ý¥¨°Âõ
.´¨ ÛøÝÆÖ ©ø¤  üµ±õ üõè¢ ý¥¨°Âõ À÷õ âþ¨ ý¥¨°Âõ
.Ýî °Âõ ¤
A[p..r] ýþ¤ Ýû¡üõ •
.´¨ Âþ¥ ýÜÂõ ¨ Ûõª ݵþ¤Úó
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
39
•
•
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
,A[q
$
+ 1..r] ø A[p..q] üú÷ Ç¿ ø¢ A[p..r] (partition) ýÀÇ¿
.Àª±÷ ÂÇ
:ÝÆÖ (1
A[q + 1..r] ÂÊä Âû ¥ A[p..q] ÂÊä Âû îý¤Ï
p
q
r
≤x
≥x
.À÷ªüõ °Âõ üµÈ𥠤¬
A[q + 1..r] ø A[p..q] Ç¿ ø¢
:Û (2
°Âõ þ¤ Ûî ø ´Æ÷ ûö °î ý¥÷ ,ûÇ¿ üðÄþø :°î (3
.´¨
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
40
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
QuickSort (A, p, r)
1 if p < r
2
then q ← Partition(A, p, r)
3
QuickSort (A, p, q)
4
QuickSort(A, q + 1, r)
.¢ªüõ ü÷¡Âê
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
41
QuickSort(A, 1, length[A])
¤¬
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
ýÀÇ¿
ݵþ¤Úó üܬ Ç¿
Partition (A, p, r)
1 x ← A[p]
2 i← p−1
3 j ← r+1
4 while true
5
do repeat j ← j − 1
6
until A[j] ≤ x
7
repeat i ← i + 1
8
until A[i] ≥ x
9
if i < j
10
then Swap(A[i], A[j])
11
else return j
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
42
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
ýÀÇ¿ ¥ üó·õ
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
43
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
x=7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
−∞ 7 6 1 9 7 10 9 12 5 7 4 3 11 2 ∞
r
p
i
j
7 6 1 9 7 10 9 12 5 7 4 3 11 2
i
j
2 6 1 9 7 10 9 12 5 7 4 3 11 7
i
j
2 6 1 3 7 10 9 12 5 7 4 9 11 7
i
j
2 6 1 3 4 10 9 12 5 7 7 9 11 7
i
j
2 6 1 3 4 7 9 12 5 10 7 9 11 7
i
j
2 6 1 3 4 7 5 12 9 10 7 9 11 7
j
i
2 6 1 3 4 7 5 12 9 10 7 9 11 7
≥x
≤x
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
44
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
?´¨ ´¨¤¢ ýÀÇ¿ Â
:(loop
invariant) ÖÜ ¥ ÛÖµÆõ üðÄþø
i≤j+1•
,j ø
i ¤ÀÖõ Âû ý¥ •
x ýøÆõ þ ÂÝî ¬ä ýø A[p − 1, i − 1] Ç¿ -x ¤½õ ýøÆõ þ ÂÇ Â¬ä ýø A[j + 1, q + 1] Ç¿ -.´¨ ýÀÇ¿ üµ¨¤¢ ± ,úµ÷ ¤¢ üðÄþø ßþ ±
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
45
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
ÖÜ ÛÖµÆõ üðÄþø ±
.´¨ ´¨¤¢ Àµ ¤¢
•
.´¨ ´¨¤¢ 4 ýÖÜ ¥ Û±ì :Âê
•
.Àîüõ ¤±ä
x ¥ ÂÇ Â¬ä ýÞû ¥ j •
.Àîüõ ¤±ä
(i
≤ j + 1) Àî ¤±ä j
x ¥ ÂÝî ¬ä ýÞû ¥ i •
¥ ÂÊä ×þ ¥ Ç À÷üÞ÷
i = j + 1 þ ,i = i þ ,i < j
i•
þ ,ÖÜ ýúµ÷
•
.´¨ ¤Âì üðÄþø î
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
46
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
âþ¨ ý¥¨°Âõ «¡ ýû´ó
Àª °Âõ þ¤
•
Àª °Âõ ÅØä þ¤
•
Àª  þ¤ ¬ä ýÞû
•
.¢ÂÞª fÖì¢ öüõ ´ó Âû ¤¢ ¤ ûËþã ¢Àã ø ûÀÜî ýûÆþÖõ ¢Àã
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
47
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
(ݵþ¤Úó Ûܽ) âþ¨ ý¥¨°Âõ
ýù½÷ µÆø üþ¤î ßþ .Θ(n log n) ßÚ÷õ ´ó ¤¢ ø
Θ(n2)
´ó ßþÂÀ
•
.´¨ ýÀÇ¿
:´¨ ×î ´
O(n) ÂÂ ýÀÇ¿ ýþÃû •
À÷¢ÂðüÞ÷  °Öä
.´¨
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
48
j
ø
i•
n/2  ·îÀ ûËþã ¢Àã •
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
´ó ßþÂÀ ¤¢ Ûܽ
Àî ÝÆÖ ÂÊä 1 ø
n − 1 ¤ ÂÊä n ÈÞû ýÀÇ¿ î üõÚû •
T (n) = T (n − 1) + Θ(n) = Θ(n2)
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
49
:ݵþ¤Úó üðÀ»
•
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
´ó ßþ ¤¢ Ûܽ
¢úª
.Àî ÝÆÖ
b 2n c ø d 2n e Â¬ä ¢Àã þ¤ ø¢ ¤ ÂÊä n ÜÂõ Âû¤¢ ýÀÇ¿ •
:ݵþ¤Úó üðÀ»
n
•
T (n) = 2T ( ) + Θ(n) → T (n) = Θ(n log n)
2
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
50
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
ö¥µõ ýÀÇ¿
0
< α < 1 ´ Âû ýÂ •
T (n) = T (αn) + T ((1 − α)n) + n
9n ) + T ( n ) + n
T (n) = T ( 10
f ·õ •
10
(´È𥠴¡¤¢)
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
51
T (n) = Θ(n lg n) Û •
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
9n ) + T ( n ) + n ý ´È𥠴¡¤¢
T (n) = T ( 10
10
$
n
n
9
10 n
1
10 n
n
log10 n
1
100 n
9
100 n
9
100 n
81
100 n
n
≤n
≤n
1
log 10 n
1
9
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
52
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
ßÚ÷õ ´ó ¤¢ Ûܽ
.ÝþÂðüõ ÂÑ÷ ¤¢ ¤ ö üê¢Ê ý÷ð ,ßÚ÷õ ´ó ¤¢ ݵþ¤Úó Ûܽ ýÂ
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
53
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
âþ¨ ý¥¨°Âõ üê¢Ê ý÷ð
.¢ª ¤½õ Ýîüõ Ëþã ñø ÂÊä ¤ ù¡ñ¢ ÂÊä ×þ üê¢Ê ¤¬
Randomized-Partition (A, p, r)
1 i ← Random(p, r)
2 Swap(A[p], A[i])
3 return Partition(A, p, r)
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
54
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
Randomized-QuickSort (A, p, r)
1 if p < r
2
then q ← Randomized-Partition (A, p, r)
3
Randomized-QuickSort(A, p, q)
4
Randomized-QuickSort(A, q + 1, r)
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
55
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
´ó ßþÂÀ ¤¢ Randomized-Quicksort Ûܽ
n−q
ø ý Ì ä
q
Ç ¿ ø¢ ý Ì ä
n
þ¤ î ¢ ª ¿ µ ÷ ý¤ Ï ¤ ½ õ :Â ê
.(1
≤ q ≤ n − 1) ¢ªüõ ÝÆÖ ýÌä
,´ó ßþÂÀ ¤¢
T (n) =
•
•
max {T (q) + T (n − q)} + Θ(n)
1≤q≤n−1
T (n) = Θ(n2) î Ýîüõ ± •
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
56
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
´ó ßþÂÀ ¤¢ Ûܽ ýõ¢
T (n) = max {T (q) + T (n − q)} + Θ(n)
1≤q≤n−1
.T (n)
= O(n2) î Ýîüõ ± ÂÖµ¨ Àµ
´¨ üúþÀ ´ ¤ÀÖõ ý :þ
T (m) ≤ cm2 ,m < n ýÂ
&
ü¨Àì ÀÞ½õ
T (n) ≤ max {cq 2 + c(n − q)2} + Θ(n)
•
:Âê
•
Å
•
1≤q≤n−1
c
1389 ý¢ 18
57
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
58
$
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
T (n) ≤ max {cq 2 + c(n − q)2} + Θ(n)
1≤q≤n−1
Àµêüõ ëÔ
q = n − 1 ø q = 1) ¥Âõ ø¢ Âû ýø¤ q 2 + (n − q)2 ýÈ î Ý÷¢üõ •
(1
≤ q ≤ n − 1 ßµêÂð ÂÑ÷¤¢ ø â ¤¢Þ÷ ݨ¤ )
:Ýþ¤¢
q = 1 ´ó ¤¢ Å •
T (n) ≤ c(1 + (n − 1)2) + Θ(n) = cn2 − 2c(n − 1) + Θ(n)
T (n) ≤ cn2
.À÷ª³ ¤
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
Θ(n) î ÝþÂÚ ï¤Ã ¤Àìö ¤ cî üϪ
59
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
´ó ßþÂÀ ¤¢ Ûܽ ýõ¢
T (n) = max {T (q) + T (n − q)} + Θ(n)
1≤q≤n−1
.T (n)
= Ω(n2) î Ýû¢üõ öÈ÷
m < n ýÂ T (m) ≥ cm2
:Âê
•
T (n) ≥ max1≤q≤n−1{cq 2 + c(n − q)2} + Θ(n) Å •
T (n) ≥ cn2 − 2c(n − 1) + Θ(n) ≥ cn2
&
ü¨Àì ÀÞ½õ
.¢ª ´±·õ
c
1389 ý¢ 18
,ßþÂ
•
Θ(n) − 2c(n − 1) î Àª ×î ¤Àì ö c î üϪ
60
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
&
ü¨Àì ÀÞ½õ
T (n) = Θ(n2) ⇐= T (n) = Ω(n2) = O(n2) Å •
c
1389 ý¢ 18
61
³õî ü¨Àúõ ýùÀØÈ÷¢
$
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
ßÚ÷õ ´ó ¤¢ üê¢Ê âþ¨ ý¥¨°Âõ Ûܽ
.¢ªüõ ¿µ÷ ÂÊä
n ß ¥ öÆØþ ñÞµ ¤½õ Ýîüõ Âê •
1
.´¨ n  Àª
Ç¿ ø¢
k
¤½õ ý±Âõ îßþ ñÞµ
A ýþ¤ ,k = 2 ø k = 1 ´ó ø¢ Âû ¤¢ ,ýÀÇ¿ ݵþ¤Úó ßþ Õ±Ï •
.¢ªüõ ÝÆÖ
&
ü¨Àì ÀÞ½õ
c
•
1389 ý¢ 18
62
n − 1 ø 1 ýûù¥À÷
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
 öõ¥ ßÚ÷õ :T (n) :ÓþÂã
T̄ (n) =
.T̄ (n)
1
n
n−
X1
T̄ (1) + T̄ (n − 1) +
q=1
•
[T̄ (q) + T̄ (n − q)] + Θ(n)
≤ T (n) ø T (1) = Θ(1) ,T (n − 1) = Θ(n2) ´ó ßþÂÀ ¤¢ î Ý÷¢üõ •
1
:Å
•
ßþÂ
•
1
[T̄ (1) + T̄ (n − 1)] ≤ [Θ(1) + Θ(n2)] = Θ(n)
n
n
T̄ (n) =
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
1 n−
X1
n q=1
[T̄ (q) + T̄ (n − q)] + Θ(n) =
63
2 n−
X1
n k=1
T̄ (k) + Θ(n)
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
n−
X1
2
T̄ (n) = n
T̄ (k) + Θ(n) Û
k=1
$
a, b > 0 ý ,T̄ (n) ≤ an lg n + b Ý÷¥üõ §À •
T̄ (n) =
≤
=
2 n−
X1
T̄ (k) + Θ(n)
n k=1
2 n−
X1
n k=1
[ak lg k + b] + Θ(n)
2 n−
X1
2 n−
X1
ak lg k +
b + Θ(n)
n k=1
n k=1
2a n−
2b
X1
=
k lg k + (n − 1) + Θ(n)
n k=1
n
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
64
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
:î ¢ªüõ ´ ñÂÚµ÷ °þÂÖ ¥ ø
n−
X1
k=1
k lg k ≤
n−1
x=1 x lg x
Z
1
1 2
2
= n lg n − n
2
8
Å
T̄ (n) ≤
2a
(
n2
n2
2b
(n − 1) + Θ(n)
n 2
8
n
an
≤ an lg n + b + [Θ(n) + b − ]
lg n −
)+
4
.¢ª üÔõ õ÷ öø¤¢ Ýîüõ ¿µ÷ ý¤Ï ¤
.T̄ (n)
bøa
≤ an lg n + b ßþÂ
T̄ (n) = O(n lg n) þ
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
65
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
Ýî Â¬ä ¢Àã ý ÆþÖõ ¢Àã ßþÂÝî ý¥¨°Âõ
dlg n!e Â Ê ä n
ý¥ ¨°  õ ý ( ¬ ä ß ) ¥ ÷ ¢¤ õ ý Æ þ Ö õ ¢À ã Û ìÀ
•
.´¨
?¢¤¢ ¢ø ߨÞõ ýÆþÖõ ¢Àã ßþÂÝî üÞµþ¤Úó þ ×î ýûn ýÂ
¢À ã (binary
insertion sort)
"ü þø¢ø¢ ¤¢' ý¥ ¨°  õ 3 ,2 ,1  Â
n
ýÂ
•
•
( 3 ,1 ,0 ÂÂ) ¢¤¢ ú ýÆþÖõ
.´Æ÷ ú
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
66
n > 3 ýÂ üóø •
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
üþø¢ø¢ ¤¢ ý¥¨°Âõ
ý (ý¢ø¤ø ´ó ßþÂÀ ¤¢) üþø¢ø¢ ¤¢ ݵþÚó ýûÆþÖõ Õì¢ ¢Àã
¤¢
B(n) Âð
dlg n!e ö ýÆþÖõ ø ×î ýû n ý B(n) Âþ¢Öõ ,Àª ÂÊä n ý¥¨°Âõ
.´¨ ùÀõ Âþ¥ ñøÀ
n=
dlg n!e =
B(n) =
&
ü¨Àì ÀÞ½õ
c
1 2 3 4 5 6
7
8
9
10 11 12 13 14 15 16 17
0 1 3 5 7 10 13 16 19 22 26 29 33 37 41 45 49
0 1 3 5 8 11 14 17 21 25 29 33 37 41 45 49 54
1389 ý¢ 18
67
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
ÂÊä 5 ýú ý¥¨°Âõ
¢ø (ý¢ø¤ø ´ó ßþÂÀ ¤¢) ÂÊä 5 ý¥¨°Âõ ý ÆþÖõ 7 üÞµþ¤Úó þ
?¢¤¢
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
68
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
b
a
$
d
c
e
ÆþÖõ 3 ¥ Å
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
69
(´¨ Âï¤Ã
b Âê) b a
(´¨ Âï¤Ã
c Âê) c d
(´¨ Âï¤Ã
c Âê) c b
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
.Ýîüõ ¤¢ (´ó ßþÂÀ ¤¢ ÆþÖõ 2 )
$
a → b → c ýù¹÷¥ ¤¢ ¤ e Àµ
e ¤¢ ¥ Å Óܵ¿õ
b
a
e
d
c
a
b
e
d
c
a
e
b
d
c
.¢ªüõ ¤¢ ù¹÷¥ ¤¢
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
70
a
b
d
e
c
d ÂÚþ¢ ýÆþÖõ 3 ·îÀ
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
:´¨ Âþ¥ ÕÎõ ¤î ßþ ©ø¤ ,Àª
.ßî À ¤ Âï¤Ã ø Â×î Â¬ä ø ßî ÆþÖõ
K4
K5
¤
K1
K3
ø
¬ä ßþ Âð
K2
¤
K1
(1
ßþ ýúµ÷ ¤¢ .ßî ÆþÖõ Ýû ¤ ëê À ×î ÂÊä ø¢ ÂÚþ¢ ýÆþÖõ ×þ (2
:Ý þ¤¢ ,À ª
e
a
 ¬ ä ß þ  ð .À þü õ ¤¢ Û Ø ª ¤ ¬ Â Ê ä 5 Ü Â õ
.c
ÆþÖõ 2 ·îÀ ¤î ßþ ,ßî ¤¢ üþø¢ø¢ ©ø¤
≤døa≤b≤d
a < b < d ýù¹÷¥ ¤¢ ¤ e (3
.¢ªüõ Û¬ Û±ì ÛØª ¥ üØþ ø ¢¤¢ ¥÷
ÛÂõ ¤¢ î ýÂ¬ä ¥ üþ¤ú ýù¹÷¥ ¤¢
c ¤¢ ,c < d î ßþ (4
.¢¤¢ ¥÷ ÂÚþ¢ ÆþÖõ 2 ·îÀ üþø¢ø¢ ©ø¤ ,À÷ùÀª °Âõ
.¢¤¢ ¥÷ ÆþÖõ 7 ·îÀ ¤îßþ ßþÂ
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
71
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
(öÆ÷-¢¤ê ݵþ¤Úó) ݵþ¤Úó ÝÞã
Slemer)
öÆ ÷ ø (Lester
Ford Jr.)
¢¤ê öþì ͨ ü ±ó ¥Â Ï Ý µþ¤Ú ó
× þ Û Ø È Ý µ þ¤ Ú ó ß þ ü Ü ¬ ýùÀ þ .À ª ù¢¢ Ý Þ ã 1959 ñ ¨ ¤¢ (Johnson
ý ɿÈõ °Â ×þ ßã ø ÀµÆû °Âõ î ´¨ ýÂ¬ä ¥ "üܬ ýù¹÷¥'
¬ä ýÞû Ûõª üܬ ýù¹÷¥ úµ÷ ¤¢ îý¤Ï ù¹÷¥ ßþ ¤¢ ¬ä ÂÚþ¢ ¤¢
.¢ª
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
72
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
a2
a1
$
abn/2c
a3
if n is odd
b1
b2
b3
ô
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
k
bbn/2c
bbn/2c+1
ýÜÂõ ¤¢ üܬ ýù¹÷¥ ¤¢ ¤¢ ýù½÷
73
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
a1
b1
a2
b2
a4
a3
b3
¤¢ ôø¢ ýÜÂõ
b2 Àã b3 ñø
b4
a6
a5
b5
b6
¤¢ ô¨ ýÜÂõ
b4 Àã b5 ñø
$
a7
b7
a10
b10
a11
b11
¤¢ ô¤ú ýÜÂõ
b6 b11 °Â
.ôk ýÜÂõ ¤¢ üܬ ýù¹÷¥ ¤¢ ¤¢ ýù½÷
2tk−1
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
+ (tk − tk−1) − 1 = tk + tk−1 − 1 = 2k − 1
74
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
:´¨ Âþ¥ ¤¬ ÂÊä
.ßî ÝÆÖ (Àª Âê
$
n ý¥¨°Âõ ý ݵþ¤Úó
f Þµ ø ÂÊäø¥ b n c ¤ ¬ä (1
n Âð) üê® ÂÊä ×þ
2
.ßî°Âõ ¤ ûö ø ßî ÆþÖõ Ýû ¤ ÂÊäø¥ Âû (2
ö ¥ Å ø ßî °Âõ ¤ (Â¬äø¥ ¥) Â×î ÂÊä
ýùÂ ¹ ÷¥' ¤
a1 ≤ a2 ≤ . . . ≤ ab 2n c
b 2n c üµÈ𥠤¬ (3
 ¬ ä .ß î ý¤Á ðô ÷ Û Ø ª Õ Î õ ¤  ¬ ä
.Ýõ÷üõ "üܬ
üþø¢ø¢ ©ø¤ üܬ ýù¹÷¥ ýóø Ç¿ Âþ¥ °Â ¤ ÛØª ¤¢
b Š (4
ýù¹÷¥ ñø Ç¿ Â¬ä ¢Àã î ´¨ ùÀª ¿µ÷ ý¤Ï °Â ßþ .ßî ¤¢
:¢Âî ¢¹þ ¤ Ûõî ýù¹÷¥ öµ ÆþÖõ
f Þµ ø
b1 ≤ a1
ýù¹÷¥ ¤
b2
ų¨ ø
k
b1 ≤ a1 ≤ a2
˻ 2k
− 1 üܬ
ýù¹÷¥ ¤
b3
˵
.´¨ ÂþÁöØõ ÆþÖõ 2 ¤¢ ø 3 ·îÀ ù¹÷¥ Â¬ä ¢Àã .ßî ¤¢
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
75
(a
b3
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
¤
b4
ų¨ .ßî ¤¢
b3
b1
ø
a4
7 ·îÀ ù¹÷¥ Â¬ä ¢Àã .ßî ¤¢
a1
$
ÂÊä 7 Ûõª ýù¹÷¥ ¤
b4
f Þµ ø
b3
b1 ,a3
a1
b5
(b
˵
ýù¹÷¥
.´¨ ÂþÁöØõ ÆþÖõ 3 ¤¢ Âû ø
ýÜÂõ ¤¢ ,t1 , t2 , . . .
= 1, 3, 5, 11, . . . ý üÜî ´ó ¤¢
.ùÀ õ¢ ¤ À÷ø¤ ßþ
ÂÊä ö ¥ f Þµ î ý¬ä ýù¹÷¥ ¤¢ °Â ¤ bt
btk ÂÊä Âû ô
k−1 +1
(c
k
(¢ ø ¤ ¬ ¤¢) bb n c+1 Â Ê ä Û õ ª Ü Â õ ß þ ¡ .ß î ¤¢ À ÷Â × î
2
.¢ªüõ
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
76
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
ݵþ¤Úó Ûܽ ø ±¨½õ
î Ýî ßã ý¤Ï ¤ û tk
2tk−1
+ (tk − tk−1) − 1 = tk + tk−1 − 1 = 2k − 1
t0 = 1 î Ý÷¢üõ
.Ýî Û
k > 0 ýÂ ¤ tk = 2k − tk−1
üµÈð¥ ýΤ ´¨ üêî Å
î ´¨ ߪø¤ ý¤Áðý ø ö¢Âî¥
tk =
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
k
X
(−1)k−i2i
i=0
77
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
¥ ù¢Ôµ¨
4tk
=
k
X
(−1)k−i2i+2 =
i=0
k+
X2
i=2
(−1)k−i2i
Ýþ¤¢
4tk
k+2
− tk =
2
=
2
=
2
=
2
k+1
k+1
k+1
− 2k+1 − (−1)k−121 − (−1)k 20
−
"
2(−1)
k−1
+ (−1)
k
#
− (−1)k−1
+ (−1)k
:Ýþ¤¢ ö ¥ ø
1
tk = [2k+1 + (−1)k ]
3
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
78
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
ݵþ¤Úó Ûܽ
ûÆþÖõ ¢Àã
n
n
n
2
2
2
F (n)
F (n) = b c + F (b c) + G(d e)
üܬ ýù¹÷¥ ¤¢
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
b Â¬ä ¤¢ ý ô¥ ýûÆþÖõ ¢Àã ·îÀ = G(d 2n e)
79
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
tk−1 ≤ m < tk
Å .¢¤¢ ¥÷ ÆþÖõ
j
G(m) =
·îÀ tj−1
k−
X1
j=1
≤ k ≤ tj
Âð
î bk ÂÊä Âû ¤¢ î Ý÷¢üõ
j(tj − tj−1) + k(m − tk−1)
Ýþ¤¢ ø
k−
X1
j=1
j(tj − tj−1) = [(k − 1)tk−1 − (k − 1)tk−2] +
[(k − 2)tk−2 − (k − 2)tk−3] + . . . + (t1 − t0)
= (k − 1)tk−1 − tk−2 − tk−3 − . . . − t1 − t0
ßþÂ ø
G(m) = km − (tk−1 + tk−2 + . . . + t1 + t0) ≤ km
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
80
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
Ýþ¤¢
m ≥ tk−1 = (2k + (−1)k−1)/3 ≥ 2k−2
k ≥ 1 ¤ÀÖõ ×þ ýÂ
k ≤ lg m + 2 Å
ßþÂ
G(m) ≤ km ≤ m lg m + 2m
Å
F (n) ≤
n
2
n
n
n
n
n
+ F (n/2) + d e lgd e + 2d e ≤ F ( ) + lg n + O(n)
2
2
2
2
2
ÝþÂðüõ ½µ÷ î
n lg n ≤ F (n) ≤ n lg n + O(n)
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
81
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
Àî Âê ,ÂÕì¢ ý±¨½õ ýÂ
wk = t0 + t1 + · · · + tk−1 = b
2k+1
3
c
,¤¬ ßþ ¤¢
(w0, w1, w2, w3, w4, · · ·) = (0, 1, 2, 5, 10, 21, · · ·)
î ¢Âî ± öüõ
F (n) − F (n − 1) = k
⇐⇒
wk < n ≤ wk+1
´¨ ñ¢ãõ ¡ ¯Âª ø
2k+1
3
<n<
2k+2
3
3
=⇒ k + 1 < lg(3n) ≤ k + 2 =⇒ k = lg( n)
4
ßþÂ
3
&
ü¨Àì ÀÞ½õ
F (n) − F (n − 1) = dlg( n)e
4
c
1389 ý¢ 18
82
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
:´¨ Âþ¥ ¤¬ üµÈð¥ ýΤ ßþ ø
F (n) =
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
n
X
dlg( k)e
k=1
83
3
4
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
öÆ÷-¢¤ê ݵþ¤Úó üþ¤î
n=
dlg n!e =
F (n) =
1 2 3 4 5 6
n=
dlg n!e =
F (n) =
18 19 20 21 22 23 24 25 26 27 28
29
53 57 62 66 70 75 80 84 89 94 98
103 108 113
7
8
ü¨Àì ÀÞ½õ
c
10 11 12 13 14 15 16 17
0 1 3 5 7 10 13 16 19 22 26 29 33 37 41 45 49
0 1 3 5 7 10 13 16 19 22 26 30 34 38 42 46 50
30
31
54 58 62 66 71 76 81 86 91 96 101 106 111 116
.ßþ öÂî ö ýÆþÖõ ø ¬ä Ýî ¢Àã ýÂ
&
9
1389 ý¢ 18
F (n) öÆ÷-¢¤ê ݵþ¤Úó ýûÆþÖõ ¢Àã :1 ñøÀ
84
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
(Âê) ü¤¡ ý¥¨°Âõ
.´¨ ùÀª ù¡£ ü±Â ¤¬ ûÛþê ýø¤  ä
Ï
.¢¤¢ ÀÜî ×þ ¢¤î¤ Âû .´¨ ¢¤î¤
n Ûõª Ûþê Âû •
.Àª °Âõ öÈþûÀÜî §¨Â û¢¤î¤ üøÂ¡ Ûþê ¤¢ Ýû¡üõ
•
ÀµÆû ¥ öõ¥ ×þ ¤¢ î üþûÛþê ¢Àã
•
.´¨ ´ ù¢Ôµ¨ Ûì üܬ ýÑê ¢Àã
•
.¢ª ô¹÷ üܬ ýÑê ¤¢ À÷üõ ÍÖê ±¨½õ ø ÆþÖõ ÜÞä
•
.´¨ ¢øÀ½õ ø
&
ü¨Àì ÀÞ½õ
c
•
ׯþ¢ ü¨Âµ¨¢ Âû
.¢ªüõ ùÀ÷¡ ¢¤î¤
1389 ý¢ 18
r
85
k
•
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
ׯþ¢ ûü¨Âµ¨¢ ¢Àã :üþ¤î ¤ãõ
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
86
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
(External Merge Sort) üõè¢ ü¤¡ ý¥¨°Âõ
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
87
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
°Âõ ýãÎì ø¢ ôè¢
1 ý¢ø¤ø °Âõ Ûþê
1
3
5
9
9
10 15
9
1
3
4
5
5
üøÂ¡ °Âõ Ûþê
7
8
9
2 ý¢ø¤ø °Âõ Ûþê
11
4
5
7
8
11 12 17
üܬ ýÑê
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
88
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
¢¤î¤
n2
$
ôø¢ ýãÎì ø ¢¤î¤
.¢¢ ô¹÷ ¤ ôè¢ öüõ ßµª÷ ¢Àã ßÞû ø öÀ÷¡ ¤
.¤
n1
ñø ýãÎì
n1 + n2
,k
=1
d nk1 e + d nk2 e üÜî ´ó ¤¢ üóø
.¢¤î¤ 3k ýù¥À÷ :¥÷ ¢¤õ ýÑê ¤ÀÖõ
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
89
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
°Âõ Ûþê À ôè¢
k
¢¤î¤ k
f1
b1
k
f2
b2
fo
bo
f3
b3
fr
br
üܬ ýÑê
.¢¤¢ ¢¤î¤
ni
.¤
d e
i=1 k
r
X
.¢¤î¤
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
(r + 1)k
90
ni
ýù¥À÷
fi
:ûü¨Âµ¨¢ ¢Àã
ýù¥À÷ :¥÷ ¢¤õ ýÑê ¤ÀÖõ
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
üõè¢ ü¤¡ ý¥¨°Âõ
2i
2i−1
g1
f1
f2
g2
üܬ ýÑê
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
91
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
(üÜî ݵþ¤Úó) üõè¢ ü¤¡ ý¥¨°Âõ
.´¨ µ
g2
g1 ,f2 ,f1
ø
.ßî ÝÆÖ é
µ¡ ¢¤î¤ ×þ ¢Àã ·îÀ
Ûþê ¤ú .¢ªüõ ö
f2
ø
f1
Ûþê ø¢ ¤ ý¢ø¤ø Ûþê (1
:ßî ¤ÂØ ¤ Âþ¥ ÛÂõ
2i−1 ñ Ï ü ã Î ì Û õ ª (g2 ø
g1
þ)
f2
ø
f1
k = 1 ýÂ
i = 1, . . . , M
ýÂ (2
î Ý îü õ  ê Ü Â õ ß þ ¤¢
Àø ×þ ·îÀ ý¢ø¤ø Ûþê ø¢ ãÎì ¢Àã ø ´¨ °Âõ ãÎì Âû ø ÀµÆû
.¢¤¢ é
µ¡
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
92
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
f2
ýûù¤Þª ãÎì .ÝþÂðüõ ÂÑ÷ ¤¢ ý¢ø¤ø ýûÛþê ¤¬ ¤
.ß î ¢ ¹ þ   ø¢ ñ Ï ý ã Î ì ø ß î ô è¢ Â Ú þ¢× þ ¤
f2
ø
f1
ø
f1
(1-2
ö ¨× þ
(ÂÝî ñÏ ãÎì ×þ ·îÀ Ã) 2i ñÏ °Âõ üãÎì ôè¢ ßþ Û¬
.Åþ
g2
¤¢ ÂÚþ¢ ¤ ø
¤¢ üøÂ¡ ýûÛþê öä ¤
f2
ø
f1
g1
¤¢ ¤×þ °±Â ¤ ãÎì ßþ ´¨
ø ý¢ø¤ø ýûÛþê öä ¤
g2
ø
g1
(2-2
.ßî ¤ÂØ ¤ ýÜÂõ ø ÂÚ ÂÑ÷
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
93
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
üõè¢ ü¤¡ ý¥¨°Âõ ñ·õ
fin
28 3 93 10 54 65 30 90 10 69 8 22 31 5 96 40 85 9 39 13 8 77 10
f1
28 3 93 10 54 65 30 90 10 69 8 22
f2
31 5 96 40 85 9 39 13 8 77 10
g1
28 31 93 96 54 85 30 39 8 10 8 10
g2
3
5 10 40 9 65 13 90 69 77 22
f1
3
5 28 31 9 54 65 85 8 10 69 77
f2
10 40 93 96 13 30 39 90 8 10 22
g1
3
g2
9 13 30 39 54 65 85 90
f1
3
5
f2
8
8 10 10 22 69 77
3
5
5 10 28 31 40 93 96 8
8 10 10 22 69 77
9 10 13 28 30 31 39 40 54 65 85 90 93 96
8
8
9 10 10 10 13 22 28 30 31 39 40 54 65 69 77 85 90 93 96
g1 = fout
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
94
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
Ûܽ ø üµ¨¤¢
üþûãÎì ý¤¢ üøÂ¡ Ûþê Âû
i ýÜÂõ ýúµ÷ ¤¢ î ¢¢ öÈ÷ öüõ ÂÖµ¨ •
.´ ¨ Â Ý î 2i ¥ Ç ó Ï î ã Î ì × þ  · îÀ à ,´ ¨ 2i ñ Ï ø °  õ
.À÷¤¢ é
µ¡ Àø ×þ ·îÀ üøÂ¡ Ûþê ø¢ ýûãÎì ¢Àã ßÝû
×þ ýø üøÂ¡ ýûÛþê ¥ üØþ (ÖÜ ¤ÂØ ¢Àã)
.´¨ üó¡ ýÂÚþ¢ ø ý¢ø¤ø Ûþê ¢¤î¤
µ ª ÷ ¤ × þ ø ùÀ ÷ ¡ ¤ × þ ¢¤ î¤
¤ 2n) ´¨ 2n(dlog ne
+ 1)
n
M = dlog ne ýÂ ßþÂ •
n ôÞ Ûõª °Âõ ýãÎì
ý Þ û ¤Â Ø Â û ¤¢ îß þ
•
 áÞ¹õ ¤¢ ׯþ¢ ü¨Âµ¨¢ ¢Àã ,À÷ªüõ
.(üܬ Ûþê ÝÆÖ ý ߵª÷ ø öÀ÷¡
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
95
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
n
.¢ Àû¡ 2d k e(dlog ne + 1)  ¢Àã ßþ ,k
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
96
$
> 1 ´ó ýÂ •
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
Ñ ê
r
¥ ù¢ Ô µ ¨ ø ö Æ Ø þ ü þ ûù¥À ÷ Û þ ê
r
$
ýø¢¤ø Û þ ê Ý Æ Ö
•
× Æ þ¢ ü ¨¤´ ¨¢ ¢À ã ,¤ ¬ ö ¤¢ ¢Â î °  õ ¤ Û þ ê ö ü õ à ÷
n
.2d k e(dlogr ne + 1)  üÜî ´ó ¤¢ ø ¢ªüõ 2n(dlogr ne + 1)
.´¨ ¥÷ 2rk ýù¥À÷ ýÑê üÜî ´ó ¤¢
.Ýþðüõ (Multiway
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
•
Merge) ÷ðÀ üõè¢ ¥¨°Âõ ¤ üÜî ´ó •
97
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
(Polyphase) ù¥êÀ ü¤¡ ý¥¨°Âõ
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
f3
f2
f1
ôð ¥ Å
--
21(1)
13(1)
˵
13(2)
8(1)
--
1
5(2)
--
8(3)
2
--
5(5)
3(3)
3
3(8)
2(5)
--
4
1(8)
--
2(13)
5
--
1(21)
1(13)
6
1(34)
--
--
7
98
n = 34
:ñ·õ
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
ù¥êÀ ü¤¡ ý¥¨°Âõ
.Ýþ¤¢ ô¥ Ûþê (r
¢¢Àä ßõ i)
Fi
ÂÂ
+ 1 üÜî ´ó ¤¢) ¨ •
n ßî ê® ∞ ÀÜî ¢¤î¤ ¢Àã ßþÂÝî ý¢ø¤ø Ûþê •
.¢ª (ü÷±ê
(F i
&
= Fi−1 + Fi−2) ßî ÝÆÖ Fi−2
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
ø
Fi−1
99
ýûù¥À÷ Ûþê ø¢ ¤ ý¢ø¤ø Ûþê
•
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
ßî ¤ÂØ ¤
Âû ýù¥À÷ î ´¨ (Fm
= Fi
Àµ ¤¢) °Âõ ýãÎì
.(Fr
Fr+1
Fm
M =? ýù¥À÷ •
f1
ý¤¢
= F0 = 1 Àµ ¤¢) ´¨ Fr
ö ý ã Î ì  û ýù¥À ÷ î ´ ¨ °  õ ý ã Î ì
Fm+1
ý¤¢
f2
Ûþê ¥ °Âõ ýãÎì ¢Àã ßÞû ¤
f1
.Åþ
ý¤¢
f3
ø
Fr+1
ýù¥À÷ ãÎì
.´¨
ß Ý û
f3
ø .´¨
Ûþê ¥ °Âõ ýãÎì
f3
Fm−1 = Fm+1 − Fm
Fr+2 = Fr + Fr+1
ö ýãÎì
f2
.´¨ üó¡
Ýû ¤
Ûþê¨ ¥ --
Fm
--
¤¢ ¤ Û¬ ø ßî ôè¢
ý¤¢
f2
,üó¡
f1
ñ --
ýù¥À÷ °Âõ ýãÎì
Fm
.ùÀ Âç °¨ ¤ ûÛþê ý¤Áðô÷ --
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
100
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
M
$
¤ÀÖõ ø üµ¨¤¢ ±
a(b) + c(d) −→ e(f ) + g(h) ýΤ •
ý ã Î ì
c
î ü Ü þ ê ,b ýù¥À ÷ ôÀ î û °  õ ý ã Î ì
°Âõ ýãÎì
f
ø
a ýø
Û þ ê × þ ü ã þ
e ýø Ûþê ø¢ ø À÷ªüõ ôè¢ ¢¤¢ d ýù¥À÷ ôÀîÂû
.Àîüõ ¢¹þ
høf
°Âõ
ýûù¥À÷
:ÖÜ ¥ ÛÖµÆõ üðÄþø
.ÀµÆû ü÷±ê ¢Àä ëê
•
h a ¢Àä ÜÂõ Âû ¤¢ --
.´¨ üú ûÛþê ¥ üØþ ÜÂõ Âû ýúµ÷ ø Àµ ¤¢ -ô
i − r − 1 ô𠤢 ,Àª n ýøÆõ þ Âï¤Ã ü÷±ê ¢Àä ßþÂ×î Fi
:´¨ ¤Âì Âþ¥ ýΤ ,ݵþ¤Úó ¥ (3
&
ü¨Àì ÀÞ½õ
Âð --
≤ r ≤ i − 2 ýÂ)
Fr (Fi−r+1) + Fr−1(Fi−r ) −→ Fr−1(Fi−r+2) + Fr−2(Fi−r+1)
c
1389 ý¢ 18
101
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
:þ
•
ö
•
Fi−1(F2) + Fi−2(F1) −→ Fi−2(F3) + Fi−3(F2)
¥ üØþ ¤¢ ø Ý÷¡üõ ý¢ø¤ø Ûþê ø¢ ¥ ¢¤î¤
Fi−2
¢Àã ,Fi−2
< Fi−1
.ÝÆþ÷üõ üøÂ¡ ýûÛþê
  ö ý ã Î ì  û ýù¥À ÷ ø
Fi−2
  ü øÂ ¡ Û þ ê ß þ ã Î ì ¢À ã
.¢ Àû¡
.À÷õüõ üì
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
F2
¢Àã Âï¤Ã Ûþê ¥
•
.¢Âî ´ ¤ ñõÂê öüõ ,ÂÖµ¨ ýþ üµ¨¤¢ Âê
•
ýù¥À÷ ãÎì
Fi−1 − Fi−2 = Fi−3
F1 + F2 = F3
•
102
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
ø À ÷¤¢ ã Î ì × þ ôÀ î  û ü øÂ ¡ Û þ ê ø¢ (r
=
3 ýÂ ) ô
Fi−2
ø
Fi−1
.´¨
i−r−1
ô 𠤢 ø ´ ¨
i−4
ô ð ý ú µ ÷ ¤¢
•
 °Â öÈþûù¥À÷
.¢ªüõ °Âõ Ûþê ×þ ¤¢ ÃÞû ô
¢À ã Ý µ þ¤ Ú ó ô
i−4
i − 3 ôð ýúµ÷ ¤¢ ,Å •
Â Â Ý µ þ¤ Ú ó ý ûô ð ¢À ã
.ÀÆþ÷üõ ø À÷¡üõ ¢¤î¤ 2Fi−2 Fi−r+2
¤¢ ,¢¤¢ ¥÷ ׯþ¢ ü¨¤´¨¢ 2Fi ýù¥À÷ î Ûþê ýóø ÝÆÖ Æµ
•
•
ݵþ¤Úó áÞ¹õ
2F i
+
i−
X2
r=3
2Fi−2 Fi−r+2
.´ª¢ Àû¡ ü¨¤´¨¢ ü¤¡ ýÑê
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
103
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
ý¤õ ý±Âõ
ÂÊä ßþÂï¤Ã ø ßþÂ×î
ÆþÖõ
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
104
d 32n − 2e
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
¬ä ßþÂ×î ø¢
ÆþÖõ
n − 1 + n − 2
:üúþÀ Ûù¤
:Â Ûù¤
¤¢ ÂÊä ßþÂ×î ßã ýÂ
dlg ne áÔ¤ ø ï n ÆþÖõ ´¡¤¢ ×þ ¢¹þ •
n ´¡¤¢ ßþ üÜ¡¢ ýûùÂð ¢Àã  ,¢¤¢ ¥÷ ÆþÖõ n − 1 f Öì¢ î) Èþ¤
(ïÂ
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
105
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
.´¨ ùÀª ÆþÖõ ÂÊä ßóø ´¡¤¢ ßþ ¤¢ fÞµ ÂÊä ßþÂ×î ßõø¢
´¨ ÂÊä
dlg ne ß ÂÊä ßþÂ×î ,ÂÊä ßþÂ×î ßõø¢ Å •
.¢ªüõ ´êþ ÂÊä ßþÂ×î ßõø¢ ÆþÖõ
.ÆþÖõ
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
•
106
dlg ne − 1 •
n − 1 + dlg ne − 1 áÞ¹õ ¤¢ •
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
:¬ä ßþÂ×î 3 ý ۱ì Ûù¤ ÝÞã
ùÀª ÆþÖõ ÂÊä ßþÂ×î ßóø þ ø ßõø¢ þ ÂÊä ßþÂ×î ßõ¨
•
.´¨
(ÂÊä ßþÂ×î ¥ Âè) ÂÊä
dlg ne − 1
·îÀ ÂÊä ßþÂ×î ßóø
•
.´¨ ùÀª ÆþÖõ
ßþÂ×î ßõø¢ ø ßþÂ×î ¥ Âè) ÂÊä
dlg ne − 2 ·îÀ ÂÊä ßõø¢ •
.´¨ ùÀª ÆþÖõ (ÂÊä
·îÀ î Ýî À ¤ ÂÊä 2dlg ne − 3 ·îÀ ß ÂÊä ßþÂ×î Àþ Å
¢¢ ¥÷ ÆþÖõ 2dlg ne − 4
ÆþÖõ
&
ü¨Àì ÀÞ½õ
•
n − 1 + (dlg ne − 1) + 2dlg ne − 3 = n + 3dlg ne − 4 ·îÀ áÞ¹õ ¤¢ Å
c
1389 ý¢ 18
107
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
..´¨ ¥÷
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
108
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
k > 3 ýÂ ÝÞã
ÆþÖõ
n−1+
k
X
i=2
idlg ne − (k + 1) = n + O(k 2 lg n) µªÁð ©ø¤ •
O(n + k lg n) ¤¢
:Þî ôÂû ¥ ù¢Ôµ¨
O(n + k lg k) ¤¢ x ñ ýÀÇ¿ ø (x) ÂÊä ßõ k
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
109
ßµêþ
•
•
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
ÂÊä ßõ k ßµêþ
âþ¨ ý¥¨°Âõ ¤¢ ýÀÇ¿ §¨Â
O(n) ßÚ÷õ (1
´ó ßþÂÀ ¤¢
ÀµÆû
&
ü¨Àì ÀÞ½õ
c
O(n) (2
O(n) Ç¿ ø¢ ýûù¥À÷ î ßþ ßÞÌ üóø ýÀÇ¿ §¨Â
1389 ý¢ 18
110
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
O(n) ßÚ÷õ ÂÊä ßõ k
Randomized-Select (() A, p, r, i)
. Find the ith element in A[p..r], assuming 1 ≤ i ≤ r − p + 1
1 if p = r
2
then return A[p]
3 q ← Randomized-Partition (A, p, r)
4 k ← q−p+1
5 if i ≤ k
6
then return Randomized-Select (A, p, q, i)
7
else return Randomized-Select (A, q + 1, r, i − k)
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
111
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
Randomized-Select Ûܽ
(ÂÀ ´ó) ÀµÆû ýøÆõ÷ ¬ä î Ýîüõ Âê
.´¨ 1
≤ k ≤ n ©±Âõ , 1n
.¢ªüõ ÝÆÖ ýÌä
ñÞµ ¤½õ ,Àª
•
n Â¬ä ¢Àã Âð •
n − 1 ø ýÌä 1 Ç¿ ø¢ þ¤ ,Àª k = 1, 2 Âð •
.¢ªüõ ÝÆÖ ýÌä
n−k
ø ýÌä
k
Ç¿ ø¢ þ¤ ,n üÜî ´ó ¤¢
•
Å
T (n) ≤
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
1
n
T (max(1, n − 1)) +
n−
X1
k=1
112
T (max(k, n − k)) + O(n)
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
T (n) ≤
1
n
T (max(1, n − 1)) +
n−
X1
k=1
$
T (max(k, n − k)) + O(n)
Ýþ¤¢
max{k, n − k} =
k
if k ≥ dn/2e,
n − k if k < dn/2e
T(
ýûÜÞ :¢Âê
,À÷ªüõ ÂûÒ
ý Ü Þ ø ¤ ø¢
X
¤¢ ¤ø¢
lceiln/2e), T (dn/2e + 1), . . . , T (n − 1)
T (dn/2e + 1), T (dn/2e + 2), . . . , T (n − 1)
ý û Ü Þ :ø¥
.À÷ªüõ ÂûÒ ¤ ×þ
.´êÂð ùÀþ¢÷
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
n•
n•
T (dn/2e)
O(n) ÛÖõ ¤¢ öüõ ¤ 1n T (n − 1) ýÜÞ •
113
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
Å
T (n) ≤
≤
=
1
n
1
n
2
T (max(1, n − 1)) +
T (n − 1) + 2
n−
X1
n k=dn/2e
n−
X1
k=dn/2e
n−
X1
k=1
$
T (max(k, n − k)) + O(n)
T (k) + O(n)
T (k) + O(n).
:Ýîüõ Û ÂÖµ¨ ¤ ¡ ýΤ
T (n) ≤ cn
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
114
:Âê
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
T (n) ≤
≤
=
≤
=
$
n−
X1
2
ck + O(n)
n k=dn/
2e
dn/
2
e−
1
2c n−
X1
X
k−
+ O(n)
n k=1
k=1
2c 1
1 n
n
− 1 + O(n)
(n − 1)n −
n 2
2
2
2
c n
n
c(n − 1) − − 1 + O(n)
2
2
n
1
3
c n − + O(n)
4
2
≤ cn
c(n/4 + 1/2) > O(n) î ý¤Ï Ýî ¿µ÷ ï¤Ã üêî ¤Àì ¤ c Ý÷üõ Âþ¥
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
115
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
$
O(n) ¤¢ ÂÊä ßõ k ßµêþ
´ó ßþÂÀ ¤¢ Ç¿ø¢ ýù¥À÷ î Ýî ßÞÌ Ýîüõ ¿µ÷ ý¤Ï ¤ ¤½õ
.ÀµÆû
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
116
O(n)
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
dd 5n e/2e
1
$
d 5n e
2
x
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
117
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
.ÀµÆû
x ¥ Â×î ÂÊä 3 ý¤¢ ùøÂð d dn/25e e − 2 ÛìÀ •
ÛìÀ
1
3
2
n
5
− 2 ≥
3n
10
$
x ¥ Â×î Â¬ä ¢Àã •
−6
.´¨
.¢ Àû¡ 3n/10
7n/10
+6
− 6 ÛìÀ Ã÷ x ¥ Âï¤Ã Â¬ä ¢Àã ,Èõ ¤¬ •
 · îÀ ýø¤Â ü µ È ð¥ ¤ ¬ Ý µ þ¤ Ú ó ,´ ó ß þ À ¤¢ ,Å
•
.Àª Àû¡ ñÞä ÂÊä
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
118
³õî ü¨Àúõ ýùÀØÈ÷¢
%
ûݵþ¤Úó ü÷±õ ø û¤µ¡¨ù¢¢
'
Θ(1)
T (n) ≤
T (dn/5e) + T (7n/10 + 6) + O(n)
.T (n)
$
n ≤ 80
n > 80
≤ cn ݪ µª¢ n ≤ 80 Âû ø øÂÔõ c ×þ ýÂ
:Âê
T (n) ≤ cdn/5e + c(7n/10 + 6) + O(n)
≤ cn/5 + c + 7cn/10 + 6c + O(n)
≤
9cn/10 + 7c + O(n)
≤ cn
&
ü¨Àì ÀÞ½õ
c
1389 ý¢ 18
119
³õî ü¨Àúõ ýùÀØÈ÷¢
%
© Copyright 2026 Paperzz