6.sort-slides.pdf

‘ûݵþ¤Úó ü÷‘±õ ø ‘û¤‘µ¡‘¨ù¢¢
'
$
ý¤‘õ ý‚±—Âõ ø ý¥‘¨°—Âõ
ýø¤  “
≤ (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
—ƒ³õ‘î ü¨À€úõ ýùÀØÈ÷¢
%