|
算法设计技巧与分析].(沙特)阿苏外耶.清晰版 非常经典的算法书,值得一看!
, Y9 ~) ~( U8 |3 `; s8 Z* k6 m) v9 k6 s本书拟用做算法设计和分析领域的教科书,它包含了可作为两学期算法课程的内容; o5 M ?5 z% [. d; F: {% a
第1章到第⑩0章提供∫大学三四年级算法课程的核心材料,有些内容可以跳过,如合并查( n. s ?4 a- v* g% k* z4 g, D
找算法的平摊分析、稠图情况下最短路径和最小生成树的线性时间算法。教师可能会发现
, m( C6 P: W: m0 o* E2 u A加上后面章节的一些材料,如冋溯、随机算法、近似算法或儿何扫描是有用的。余下的材料
" f, A9 D( w5 z可作为研究生的算法课程内容。, l, k' m( D" W" i7 {8 n3 Q
本书所要求的预备知识已经减到最少,仅需要离散数学和数据结构的基本知识' E. { f2 U" U& M* x9 V4 f, z
感谢 King fabd University of Petroleum& Minerals( KFUPM,皇家法哈德石油矿业大学)的
$ j8 Q3 i# R4 G8 T4 }3 p! ~支持和对手稿准备提供的方便。本书的编写得到 KFUPM的项目 ics/algorithm./182的资助。我0 \; ]! |# h/ [$ {) G, P* R [- i
还要感谢那些认真阅读手稿各部分并且提出许多有益建议的人,包括一些在KFUM学习算( U8 N# i' Y: k1 B
法课程的本科生和研究生。特别感谢S. Alhassan,H. Almuallim和 s. Ghanta的有价值的评注。
/ w8 b0 v$ N5 m+ ]3 R" f" {M. H. alsuwaiyel
9 M3 G* I/ _/ `/ _8 I/ x3 P, H/ l5 D' D# [
日录
+ W, |: j1 ]7 I( [. g2 V; i第一部分基本概念和算法导引. [, C' Q9 V1 R' _
第1章算法分析基本概念
: e2 i: }' k/ K1····‘·····"···········.4·‘··‘44·◆··“·4日;: O" Q5 A! ]! F+ w" `$ [5 o
1.2历史背景…
4 u* J% l, f, M# K1 q& z6 L1.3二分搜索
& }6 e; P1 i4 [, `1.4合并两个已排序的表…
3 Q0 s: Y6 K2 p22367 i1 J ]5 _# x! e& b
1.5选择排序…' X% ~! k( G6 p4 x9 f5 w* p9 B! M. c
6插入排序……; s( j6 y+ X) A
1.7自底向上合并排序
6 h5 q1 i& K9 z' T- ]4 k! W0 {789; U1 \0 y2 e- j* M& ?# n# f+ L2 |
郾郾曲看d血
* M5 U" j9 U: J& \4 _1.8时间复杂性…
% C4 P& U+ T% g8 \. y) U1.9空间复杂性
8 B: ~5 l. @" B( `; w2 \* M■p■血自看b鲁自t看■画& `. @3 ^5 ^; V7 ~5 W1 M5 l
19
; Y6 q! h* p. P3 x1.10最优算法……6 m+ F7 k* D3 D0 E
1.11如何估计算法运行时间
7 D7 g# e9 v( q# h' ^3 \0 v# V··■昏■看即看·■■·p■■画』晶·‘画4·●●: Z& \, k2 t8 c9 m1 O, `
21, ^4 O4 h9 z! t- {. |& c
1.12最坏情况和平均情况的分析% z! k* k* F0 z! i7 _
26" R, M/ P$ t6 G: F! b3 `8 |
1.13平摊分析……………………………………………29) V% }) j( k( D
1.14输入大小和问题实例. v; l* h0 d# S7 I# K
中◆●P5 C+ g! B6 q' v9 A
··.·‘····◆日·◆·甲日日·◆
; x, `5 ]5 U6 ?5 U- j) |1 l1.15练习………8 L4 O. T1 m t8 {4 }' i3 |
1.16参考注释
6 F v4 S" d! E' `8 e e第2章数学预备知识………% T' K# o1 s7 \# B$ {' a) g
2.1集合、关系和函数: M$ {2 v0 A" v, q" B4 P
2.2证明方法8 l$ b7 B, W& w0 V! H9 g
4
6 N" {* o0 q8 s4 r) B2.3对数# ~( N1 L0 }: k
44···‘;‘◆中◆◆·甲『·日日日日·日日日日日·吾.··4吾········‘b··“日日aa甲4甲·日····香+·◆日訃b3 h7 ]6 C. g M
24底函数和顶函数…" Q+ ^" M+ x3 `
45
/ w. A/ W% p4 I25阶乘和二项式系数- _- q% C/ Z; E8 H: b1 r
q■●↓◆會■D■即4自4喜命·命■音,“▲命·幽+ a2 M7 J6 V' U7 N$ x. [, {
45
" W8 w1 E! g9 ~8 f$ f) }2.6鸽巢原理…………………
L+ \9 R1 b0 V3 ?………48
0 Z& R9 f: O B- l/ q27和式…/ g; b3 B$ {4 h( H/ p3 p; W9 A' m
自a4·b日白甲q甲b日·日吾日.44·今·/ d- n3 y: b5 Z p
48
5 b* o4 V% f6 |$ u" F28递推关系( `! D, U# Q* Z' H
音■■·自血●甲咖聊p●
( i9 u! N/ c( Z v/ F8 y' c29练习…
7 y: U; V# M/ k$ i% x0 e" N6 L自■血! H3 t, n# y9 o0 f8 Q9 f
·即鲁自血■■■甲司聊4●+ ~7 R+ X7 Z3 l8 g
第3章数据结构
$ F4 w* F7 ]+ U( \ ?2 S……………"……6
% I$ w: T6 g% c. [( g2 U: ^3.1引言0 A; h1 A( I& X( t
即即p■■《■■
. |; |$ z2 f& h0 Y! k3.2链表- I, ~- m* s5 v) J9 d
··d合命日a·4·4b咱"·:··B日·日··4·····如·
3 D' D7 A4 O& r# i7 e6 M# ~( V. M…67
: ?3 p1 |/ _! M* M( D2 w3.3图…
9 r: F" Z. _7 \( J% }' e◆血◆辛●●●中看口
, _! k! X( ?. W6 a1 u; j# d0 K3.4树…………; x& U5 N' u7 w- b) q3 }+ s9 u* ]8 v
; W' w2 b- P& r3.5根树……7 R# b& k' J9 Y% o0 V
36二叉树
: c- e( Y' Q1 x- d. W…………71
- L% B( g( ^1 O- t3.7练习, [8 i# }7 `6 _ i8 _
3.8参考注释$ }. i9 u: f0 l- n, @
血D啁d●即■p山画●■
# A2 c; X! R, s幽●卓●睁●: \; |% p( u" Z; W
第4章堆和不相交集数据结构& K+ f4 m. y3 T9 R
■p司●
7 i! f3 O( y8 n& ^, U( J8 B, H; I; a74
5 w/ R+ S5 H* Z5 }1 P+ P2 y4.1引言! O5 `# q2 q: o+ M& t w
74
/ }- R5 }) Q/ r' U4.2堆
9 e; h/ m+ t I P■◆鲁日鲁qq·鲁q旱·■·····●·●郾◆●會■看●↓自自●·●■■4●自喜·●d■自●p4“b“画●▲命b●血‘pp▲4 j: Y) o6 R1 M2 d" i
了4
1 S! X( Z/ y5 t. n4.3不相交集数据结构…- _0 v3 G8 J1 d$ N. X
4.4练习…………………………………………………………859 n R6 m0 G9 ?( @' K
4.5参考注释……… t5 \, C0 f, I) {- ?6 M1 E
第二部分基于递归的技术8 N3 E- e j& X2 N. a% m) w6 E* Q
●●自山命: X% Y$ Z& t* _. ~) ?% {
争■■申昏■卾甲帽鲁■■罪晋自P會●·喜4●
" R) k y& H' C$ K第5章归纳法. @ c. {6 @3 t! l7 f5 R) W) c0 K% [; b6 @
5.1引言
5 v3 ~5 N! u" D∷9/ a/ _! p- R5 R% O
5.2两个简单的例子
" o2 u; ]) Y8 f7 [& V% B" C53基数排序
|% v! O) p7 v●看“■音自血自中●自自‘··昌申中●中··●··●# w2 u7 T+ r4 r4 w. e$ n/ U8 w
921 w& y3 ?9 _ a
54整数幂
! K- G! Y, `# R& _- k●·鲁·甲导···看·罪罪·中司·号q司普甲?甲q··督号q·冒管191鲁命% F* ^, Q4 h: p4 k2 e
93
! E) X) `7 b; |& b x4 P3 g6 G6 R5.5多项式求值( Homer规则)
# j4 q) K; m9 u0 l3 p6 ?0 Q56生成排列 K) I3 g$ a- O _4 B* m' b: h+ e
95 H- n5 H: S$ r7 F6 _9 J+ e! L
5.7寻找多数元素: f4 N: }/ I4 H. g+ W; U. a {
·中·····4··4·4·q甲4··P:44··:44。·
- V6 T; ?. C/ y j$ E2 f58练习
% U) g% _( ~, I…99
; F* K% l+ `0 u: ?/ v# {7 M" A59参考注释
- J5 I5 `* e8 e3 x A1 _% a) f·····中····◆, ~ q7 @5 ^8 H% d: Z0 ]
101: S6 l7 I+ l) c! O' v: b3 B! K
第6章分治
2 F$ q' u& q6 I7 p& L6.1引言9 z6 K4 C$ i0 I U! v
自1白画p看血
3 j& F+ @, R! a: `q鲁晋◆··命。·自命也岸p·曾●专口即●4甲银D郾9 {% |) O% I ~
1023 h. I/ o6 C+ `8 T# y
6.2二分搜索
2 j! `7 f. u* Z8 g! i7 O) @6.3合并排序. i' `# h' X% Y- d& I- k
曾喜b▲pp中●··甲··单中·●●自4日即p●矿自甲甲p●画甲矿d·●号p●
- T3 i8 Y6 V) Q………105
- x8 f, J/ @: a: D64分治范式7 X0 J+ e* A7 n2 q
………………107
3 G" D! J0 y/ J6 z0 V! c$ ^6.5寻找中项和第k小元家
0 G' m9 Y6 T) [4 b7 A/ v5 }, L: ~单◆辛■■聊●喷自■自自早·即·甲甲■罪着■P■罪●。·罪·p《p◆罪●鲁自p_d■●鲁
( ]5 B; O/ ^0 E$ f: o命■
0 D2 v. @2 a3 C' o; K1093 U9 {- B, B7 @( d+ V8 ]
快速排序
g; a3 i. c; i. e# y1 w7 E* e* L■●●ep聊●p咖, i4 y0 t1 g* `6 u: A) k. ~
■要◆●4 [! Y9 @/ J7 u! W& f- g
67大整数乘法, X" r4 m( E, {" C
■··音即●bpP●9 z# A a5 U6 `. G1 G* H
l18
9 H/ @, F6 e4 i& ~; x1 V' S% R7 V- Q68矩阵乘法0 R- e4 g( [: ^2 t% h
日自自●●·中·●命山申导··中卓·自曾■/ L/ y# V! ^- ~3 v* A% k4 q
中罪晋鲁t曾『要·中要中即
4 w- r$ _; Y- Q3 w- Z# @……………1194 u, r) W x/ q+ U; r: C, \
6.9最近点对问题……+ Y8 W" l& _5 X: f" G" d: e
·121
) w2 p# k1 K! N9 N9 ]( K6.10练习
8 s3 I1 b, m+ i; f■爭咖·■聊聊·■■即曾◆唱■阝『■Dq◆即鲁罪φ鲁自卾看DD甲聊qp"■b·卓p普着ρ5 C2 U9 ]2 X/ ^+ f H4 f
.124
% Y& E( G+ S8 e; G2 s. f& L6.11参考注释
/ p2 O8 t2 ~4 d+ Q5 I自■备■晶●
' G! F( r5 a) |- D, y128' `+ S6 c8 S1 C8 b) i9 K
第7章动态规划 x, g- S; ~, y5 A
129
# P2 N: o, x$ B: }/ r" ?7.1引言……. v) j. u; q* d) ?! P
●喜·音音●■自。音·自●
1 c ]1 j: ^! v/ V…………129/ A- m j' a( A! `+ v
72最长公共子序列问题2 x0 v- ^- C5 h9 p5 o! r$ r
130% a6 @' J! h/ J# ^, |* R
73矩阵链相乘
# G. [! a9 E: ]# ?6 k' H) l1 |( R中。曾鲁即·。即◆曾
% t. E$ M6 @( g4 N0 b v! t, @q甲■■噜
6 z; G8 {0 X; A0 D& T是4↓.44·合· I+.LeI·日b5 {; ?! F4 q& ~" G
…132
8 j( `2 M) ]! K6 V) D6 K) Y( ]1 D' N8 p6 ?. Q: O
7.4动态规划范式
/ s$ O# v) \; z- E( m136
6 C6 o. m) R( b7,5所有点对的最短路径问题
# }6 n. s2 s( Z( O5 }9 \●P·甲··●白
8 T3 d5 P7 L8 B2 i# b136
9 a/ ~: u M& Y- I7.6背包问题
/ z' \0 S4 M0 q3 T4 V; U: _, M138
' m0 S! Y; X# i+ a: ?' d7.7练习
- [! Y. q n- ]0 X- K! T g) h/ g曾q唱甲1q甲·■pP■2 u; {: {( n& P8 }7 [4 Z
日甲看4 |; r2 i7 a6 b( p7 J) M6 M
鲁1D■
7 w5 U# A. p7 y& S/ z0 c7.8参考注释
3 n' [' x0 g$ @) t144: m( ^, f4 m @9 T( Z' @- X3 r4 s7 s
第三部分最先割技术& x, _* x, G: `0 O) I8 X
bb《●自晋●看q《食西■曲·也自倡b画自电·日p__p◆
7 Y+ \# c9 n& o) ~. t■自會■鲁·■自自血4···自“會■■■命↓申●4■
4 d1 O) d$ h. \6 L. Z& r5 ]145, g6 G& t; G h1 y) h/ x/ t
第8章贪心算法+ t# K7 m3 B0 l1 w q; y
146
& h7 p! q/ x' H4 w* M! P/ {: G8.1引言
8 X+ J2 Y' @0 n- I% a V146
( i+ E0 k& ] q5 R; i- x4 D8.2最短路径问题1 }6 }6 L7 ^4 Q/ M
…………………146
8 A5 e3 d! Z; M8 ^8 T83最小耗费生成树( Kruskal算法)…
+ e8 M9 S. [+ c7 c6 y◆旱甲p命·『司·◆
( [: ^6 w0 l4 r1511 T! C8 G+ E2 r
84最小耗费生成树(Prim算法)
: | m0 r f$ y2 F+ M& J1 X7 I$ M153" {( i7 F3 g$ H1 M+ A( `- h- w
8.5文件压缩
3 S2 a' q, z2 l! ~' ?9 Z看■号。
8 s6 k( ^ I8 u. E2 @# j■幽◆p$ w1 L$ u9 ^1 M
◆·●φ◆p- h8 z* r* g& Z/ Q" e
157
5 ]0 w" z& i% ]" J* d5 L8.6练习 O8 _0 m4 a; w6 p9 [; f# }
pdD●·最
% Y7 P/ Y0 C* {4p■··■●啁·血·血山血。: s# N- |0 E2 D' V
59! T5 c* E6 S7 C8 l9 G
8.7参考注释
q: _& E8 I% E1614 N. @0 a: K( y, \5 j# h
第9章图的遍历…
5 E3 v" @1 ]4 y M: j" W0 J5 y9.1引言……
- C. i8 i" q1 ?% `6 f●
# t: H9 H \6 G t) F+ K& e% {" h5 j…………162$ s$ s* I% |% X* d! i/ ^( U* [6 R
92深度优先搜索
A) F* o$ ^3 E2 b……162
2 Y& s. u: |5 j) {1 b. _9 x0 g0 U9.3深度优先搜索的应用
4 Q- s: o# l+ b+ V0 _看音·4t·●聊看D山·●画
- W u5 z4 b _ m+ ?a·●·:····3 M+ i/ v5 | T; |
165$ ^$ X0 L9 c+ R& D
94广度优先搜索; ?! P) \: ~0 b& ^. k
曾會身會■■自自鲁◆自备& P* e6 v" P! B3 z8 N
号■·看鲁■备聊甲申·
7 o! D2 h; ~- j" j1695 P- o0 h, M! s& K
95广度优先搜索的应用3 @& ^2 r7 j( W
1709 n5 U) P5 N) o- N2 w
练习: B. V! z5 F4 R: u" |1 J% n3 Q
D4·d司●t曲即7 ~! k' {' R& R, S, ^8 i- h1 ^1 M
甲會◆·血咖5 \& R% ?( r) @: k7 U
∴……170
. d# _7 ]2 b7 `" o+ O97参考注释
0 M3 L& g6 N# L( B" C5 Z172
% j# K+ b2 R% c# {第四部分问题的复杂性
& `6 y8 D% L* n2 o$ ]■■口■口d郾鲁; s7 t8 e& |- e0 H* W" B
省·自鲁自46 X" w+ i* y; m- M t) ~
P·中·?
6 T0 E0 |/ y- a8 o; k第10章NP完全问题
; Y( e, U- D/ ?9 O* m' z" B! ] W血“■■d幽画●啁啁6 g) D5 |3 p9 J% P3 u( O& B
…………s………174
! v) g& T7 h% ~- I' W" c0.1引
A5 r4 q6 Q2 b174( a4 G# m( C" h8 L) D2 Z6 g: V4 M0 K4 r
10.2P类9 x/ j) q3 U6 _" j/ J
·自命p●
; L. j1 p- [5 `6 ~ E+ O0 Z身鲁省鲁·晶。■鲁看动电●/ z0 K5 s' {" w8 J% C
……………176+ F/ ~, r$ \# |- i, H$ w' C/ T Q
10.3NP( |% e6 B; H* Q, Y
类
! C: Y, h4 ?. A* O176
8 z2 C+ s5 f% T104NP完全问题
% o6 U, z# b& @ Q. H8 c) B自自◆■·■■■b暑■■命罪唇■单●t●·4b●●) Z0 T/ [" [& I" m4 y X; _$ y
177, c5 I: f7 {3 J' ~# F
10.5c-NP类* y) v& }1 N2 C* p- z# A
n■·8 h0 c% ^6 ~8 N* J- X" e
1828 {4 e# U6 m: [. F
10.6NI类……# U7 b; G% t7 l: l1 s3 b9 b) `- r
嗶p·■◆會即郾■彰看自音·音■画
, g- Q3 \* Z/ q+ n% u2 z3 W183
0 L2 Z9 i5 x# \6 q W7 \; f& v% R c10.7四种类之间的关系
& |8 R, `! h9 k. }4 s6 X···D···合自■
/ g" N8 }/ _7 u' j% \184
# g5 N3 y$ l$ |3 U: `) O; Y) G10,8练习
0 t- Q3 k+ B4 f( \10.9参考注释
- |4 D2 X2 D1 @$ q■旷『·●聊●■伊唱哥b咖■t個■自音b画●幽
6 i5 ~: i7 ~' z& L; m4 L186, F. ^: Z& W( |7 [" r+ N' G: }. k
第11章计算复杂性引论; {1 y7 c6 O" P& V3 b
即●●·q
1 b1 A1 \2 F* l; c8 J+ J中甲···甲■■即甲鲁3 r9 `; C e9 r- b d5 k
曾鲁●■●
4 z; u- V5 @( z- ]) a) a) y+ T…187$ Z4 t: w5 h! g8 n7 t; r3 T" h2 R' o
I1.1引言……………6 Y( Y3 z* U( C$ K$ s7 _
187
" ^' H1 H9 R. j8 a& H0 c. l: Q8 J1l2计算檩型:图灵机
, e( M$ t$ Y+ c' K! Y6 g0 S中↓·卡●自日音●
' ?& l+ X$ P8 \2 l0 ?5 g18
! i- T$ w9 J) `2 x* ql1.3k带图灵机和时间复杂性……
% n0 @& m/ H0 E; G* b2 N0 @…………………187- n4 i1 ?, p3 G; K
+ F2 A* A4 g1 I' \" f
11.4离线图灵机和空间复杂性…% S4 @8 ]9 f) F$ _
189% V6 d5 t, @* F" O
11.5带压缩和线性增速% w8 ]6 n6 [$ c+ x6 Y6 u' z( L. ?
1914 }8 T0 d7 i1 f3 o( K
116复杂性类之间的关系……
( x6 B2 f8 ? {1 `. ~5 C191
( ^2 l1 P ?( C" D. p11.7归约! _' h o. K: N* K; z
●●聊●命聊
4 U0 v8 e2 k# q+ Q6 z- a118完全性
+ j) q* m0 h P& ]1 ?司申◆
# o+ j5 L7 k$ B) i+ o$ H198
9 V% E, z# I5 H7 S- Z2 V6 j- d! X- D11.9多项式时间层次…
' y& z6 \: n8 a% D% F0 g* `203
& \ h, x+ ?2 b3 ]6 K/ U11.10练习0 U- u+ Z- W4 C0 ], S/ I9 T) L# s! U
……2052 z: @& R* V; _ {2 \
11.11参考注释4 H: |% N; M* Y2 l% |' L
208: K$ ]8 U0 V+ s, O
第12章下界/ `$ g: k7 E1 t; Z$ J3 D
12.1引言% s5 v) Z! H( W5 b% P* V1 t2 ?* z
12.2平凡下界………( x. e( U0 a/ @# g
209
. m$ E% F: l1 [$ O1 Q" E. T7 y12.3决策树模型
2 Z. N6 p0 s6 u' p) D■导鲁■0 o7 F) @8 H' k, Y/ D
209
* m$ ?! L+ _7 e$ Z& e# d& z12.4代数决策树模型
* G7 z3 q1 R6 h6 [甲■甲“号
' q! r Z2 O; L211
( B: ?1 {; B8 V+ q' B, S+ g$ A12.5线性时间归约………! u/ n# F' E2 p% k5 r6 ?
●自即
$ S+ P2 _2 p' \9 `" j& b- @' @/ C…∷213, S+ d. X/ ]8 d5 e8 A
126练习" }: @/ [5 C p5 ^6 f
·甲···甲·◆甲日÷··qp·甲·4·甲·甲··4···日···p44········4··;B·B日··"
, k9 `" r5 y9 ^0 B( V1 h$ x* N鲁··鲁◆自自·自命b自申甲
& n7 U7 f# m% F8 v# E4 c2142 W1 n h( Q; e1 B7 B
12.7参考注释* L1 Z# v# O% l4 s% z
216 q7 Z, K) c; ]1 H' Y0 z' \
第五部分克服困难性
8 g; t$ R* j, X, f争■卓司●甲鲁命3 ?3 |) l" `+ m9 ?4 s0 T ]7 Z* W5 L
●。中●中番■
, Q' w U5 S" p! {! F2 i9 F……2174 F* h K3 X) c! y0 r3 w# y
第13章回溯法
& Z. Y5 w. r) X) x- G. @; V* L曾會●·■●·;b■p司『『冒4會·■D國督4聊DPd●●d备
8 S2 y( u' Q T+ e H% Y$ p1 r2 ?…………218
{+ r9 `9 s. F( e2 F. T, L13.1引言
$ z7 P. B) a5 g7 k# H% j218
9 E( ]5 ~# p* Q0 A+ [3 C13.23着色问题
' M' O5 t9 m# ]9 j/ e* ~( d% |3 I1 E/ F…2185 y! ?& x! ?7 y9 W: P7 Q
1338皇后问题& i" j. c0 O' m4 @2 `8 F
■·晋個驴鲁晋·p鲁■●4鲁鲁
7 C! m( ^8 @/ G3 N2 D$ R9 P7 G4 x134—般回溯方法…
1 ?! B. u2 v# h2 m. Z `# E: E223
. [ T Z: w/ s# O3 k$ a4 t/ ?! l13.5分支限界法
" Q9 V! i2 w0 k* l( c曾掌■早鲁冒■罪■帽罩7 i9 p# ?0 M6 t/ C8 t+ |
……225
6 ?1 P! E3 k+ n# _ {3 {13.6练习…………7 G2 G: z5 P! A' d: ^
7# _7 c. y [; v: V9 K" W) U1 V
13.7参考注释………
# V& l$ X' S- k7 B6 p ~7 u3 v( i7 O- ]…………228
% u- S. k# M" G) j8 L第14章随机算法…. @# ?" t9 I# Q- A& [; n0 z# c/ v. F
14.1引言
9 H& A- X: U2 x5 G! M$ s甲司申p申电。。甲自pq要p甲■■命甲pp看看p●哪
5 `; Y2 q. k1 E |2 R………………229
( K' [, i; o* n; A( c _42 Las vegas和 Monte carlo算法6 y" u) d( {3 R7 j9 ~# I) d
■·鲁◆●●自·◆··身罪●··自會自q會中·咖咖身t要◆口 [4 u$ t5 V! f/ }
229
) J8 _7 q7 a7 T: M' D) r- S& N' m14.3随机化快速排序…& x( l$ Z# D G% E
14.4随机化的选择算法……………………………………………231
, x4 \# \$ N/ M3 w, Sl4.5测试串的相等性…
% B1 d8 Y$ l4 `: ]! T% G232
' s0 v6 y- b* l! q: x( v5 D6 N# p14.6模式匹配…
; l) z( K- G' J% N1 P234/ M0 i6 m* ]8 Y) n
14.7随机取样
8 k. F# e% W% Q) l8 ~, ~- [7 W咖争◆會會中着自甲
. n% K# Z% B1 m8 ~( J235
; a! b* E u- A& U) R148素数性测试
* u6 B+ i2 v& G2 o I4鲁●d7 ]) {/ j" ~! v& I
237
8 n3 \' N: o8 e" B149练习
1 V1 J4 T8 E+ V1 I9 |4 n■罪◆q····日·甲罪■睿罪◆·;φ罪命日·婚;··p··49 i: H+ c, v- b
24I
! }9 J" J% l/ _5 y8 n14.10参考注释
, {8 @7 E& S: D# O! K0 q* }9 r. A8 v5 ]242' x; k7 J; @% }1 W- l, P
10
" O% t$ Q. q6 C
2 Q/ |3 O/ t, A+ Y+ N" x第15章近似算法- ]' T" \- p) c7 C
244
( P4 D* U$ Z- B. \# A* z15.1引
0 q4 ?, Y2 U/ J5 P: ^- S& e中●日4·4●
) A8 H6 O! k& ]0 l5 y9 m1 E2 Q244
" U! \% W2 S5 D+ @152基本定义' \6 ]. R, U; d8 m4 r4 t/ V1 M
244
& ^6 O8 W6 X( F15.3差界…
) r% b$ g& [6 q! {; ?% q●●b●
- r& H+ B; F( B5 x y- t/ o# `0 A“曲d口鲁■■5 X5 j G- z8 D ?* M
■·@·D如■
) c q9 }8 J* `& j15.4相对性能界; D$ C( [) X+ u' }4 t2 n- R
2416; ^( b9 u6 U- H4 {
15.5多项式近似方案
6 E1 H" [! O; j■自血鲁·自
5 v, N$ c" R% q- I2 v. V+ C15.6完全多项式近似方案
/ A. s1 v; j5 F5 K0 A' WD■■p口■鲁■■●* y2 g0 ~& a$ _) c3 Y2 Q
15.7练………
1 H& O5 J# _2 k6 Q7 P+ i7 g……………255/ t: E4 X! L- }/ k; m0 M# w4 g
158参考注释2 w" ~3 y1 B9 M/ F
亠中P·.:··甲日吾·4。·.·晋Dd···+=‘' b" A; Y$ x& Z2 v: c* V
2576 m, y" y7 f4 ^2 C4 k% s! `7 @9 `
第六部分域指定问题的迭代改进
. G- J8 z7 |- m) R5 ht看●6 j+ j5 ~# i+ _
第16章网络流
9 ~" K0 ]# a( c0 V7 w7 @& ^% Y8 k●p口口■』二
8 H- F5 _+ G3 Y. D…260- F, z$ ^% I) ~4 `) H' S: s
16.1.引言…* Y& a( h: D- [4 P9 H
260& X: q% ]+ }( j- U( W6 [. y! {
162预备知识5 L. T9 Y1 R. h2 U8 w
当b·当44··4q·号40 J5 s* e' d, Y$ L5 K
…………"…260% N8 V9 r: }& J$ ?* n6 [1 x4 T% E
63Fo- Fulkerson方法…
3 B. z8 R& D4 x7 y8 A# v" g+ c, f262
! u( n7 m! `' _5 W0 c1 \- F7 K16.4最大容量增值…
# v8 X- X0 M* z% t5 ~6 o1 w0 A1 L……………………………263
1 a; S; I- q' k1 }- f [16.5最短路径增值0 y0 x+ @9 @- P% ?1 c; s
264, D+ f3 ~, u( i( s) [6 s2 U' y
66 Dinic算法' T5 E: \' @7 S: H5 w
16.7MM算法
# X4 S0 M1 R2 [5 a" l4 H9 r! \+ W···■b●·p◆◆备●●ψ
) m' ]4 @( [6 S, D) O. Q- i号·口●●食p·■—●) h& v, o1 s2 N( g& U* t: }
269" K$ u! w! Y& Y6 r
16.8练习…
& a: }3 e2 S* u# u6 u3 P270
* X7 T1 ]( h" m4 `16.9参考注释, w9 o+ d$ M% f: B2 I" B
↓●●●··备由1 ~0 H( o: l2 P& x' T
271
( _8 \* a/ c$ o& h) d第17章匹配
1 X/ S( ?/ r" o■中鲁中會印甲
$ h4 t) a8 a$ `. g% d% V9 v……272
, v8 L7 n" ~8 V5 w U; r3 g/ Y8 ]17.1引言
1 Y Q* y5 a+ V9 N, f! o………272* p7 A6 T7 F! v$ D
17.2预备知识
7 l: O; _4 f; K0 o: P·日口鲁自·白■“晷··■·●●●『·旱·◆pb血◆: _5 K, H' s u# J* p; l- o9 N; ?
272
. N2 r/ U2 H9 E8 G173网络流方法
' _) Y4 K% X. _( B2 e- Db●d曲■■! o4 r- t0 a6 |6 ]6 K
274
q( n: ]" h# h; e$ T) Z/ L" J174二分图的匈牙利树方法
/ c; W2 ]& v+ k5 u4“4··4·4····4·········-◆·4·p。;日a甲“4‘、▲4
# a. g( h9 K P1 f3 {) H* s2747 t: j( g5 h5 Y& i8 R
175一般图中的最大匹配
& o) E; b( S. H8 ^2 l·●鲁看即
! H; C0 ~5 f, Q. k z- X% \& l7 O176二分图的O(n25)算法2 h% j5 F8 Q" k+ x
17.7练习
$ U( D8 Y& ? `. ^5 q■鲁·■■自命■■
( N2 I) y. P M6 A% u284
9 k0 ]' b% M; W0 F: o7 n% _# g& P178参考注释
/ s; S6 y h( b3 d2 v7 i( D" }■■●自·■■自ψ■·着严甲甲■看D●』。D■▲血A
e% [8 u7 P/ Q' z# G' C286
5 e% Z) M, g; a, M( p: P第七部分计算几何技术
' F5 b8 B# t+ o5 `9 L4 l287. t- a- ]- x6 f# G5 n/ s) M
第18章几何扫描
K) j6 p3 b+ \/ x+ v& q……288: s* R' p+ S# o0 g
18.1引言……
8 _. ?' Q! X& g2 G# G9 z884 C3 o$ B) h0 q; S9 W( |) O; @
18.2几何预备知识
# V, e+ k. s% q1 W' W2898 M1 U/ ]- f! _* A* p# O
18.3计算线段的交点
8 v) @ b& E# X& ?184凸包问题
( B2 Z- v9 Y; O+ I( ?…………………………………2923 q- w8 @* N- q
18.5计算点集的直径" o/ P, i; k A" _
6练习
$ o/ u1 ]! r0 J% I. o1 S) r. Y
1 m& M% F3 E0 Z8 d& C0 d2 y: F' I18.7参考注释1 f, H/ a4 a* \0 ^
第19章 Voronoj图解
( d6 h0 w% b e1 L( q自自◆自血自■自·自自自·命自
6 \" e) ~. Q& y1 c19.1引言
0 f6 ]; J) y+ W% \1 Q/ i昏■自■音■■鲁者·■bp口‘▲■b4■备自■■晶■备·“▲血日“■··●●0 Y7 X7 f$ p$ ?7 P- N
192最近点 Voronoi图解
+ f0 v+ E, _7 X曾●■■■■■■鲁自《看画看曲■↓曲曲看山血
/ Z" F- d( B) X w. p300
0 t; L2 D' c1 g/ o! s9 m* D193 voronoi图解的应用4 ^% S' [) b& k g
194最远点 Voronoi图解
/ N. @( w, O* V C1 H0 v号·冒·即■·聊看■●●自最看申●鲁4bb音。自●自郾) I B# O0 S; ?. W8 {
…306! k* D8 a0 \0 P5 L h# b" y$ A3 D
19.5最远点 voronoi图解的应用' y. m) a& ^ G! n- g S4 h
308 ^, a& C4 `* ], {; j
19.6练习
0 i9 E- P% C7 M号唱甲即冒■■●& g3 E l2 o: n+ k ~
·昏聊會●;●·自●b着■■■
9 d* A' Z# K$ ~4 F9 E309- s3 v+ J7 R& L: L: s4 ^+ H
19.7参考注释0 g5 M) I& n1 a8 \6 m" U
■■郾看p●
' l ?/ v3 i* y* G- ?( ~: u3l0
+ k! I, m4 e+ D+ Z4 ^( Z9 O! g; z1 e参考文献……
$ K1 H; \+ R! ]8 ]3 ?4 L6 S2 q129 I; p# m' P: w" K* f% q" u
6 k* J" _& E( Y/ ~
第一部分基本概念和算法导引/ O, ]8 {7 |6 y8 w$ }6 P" A9 h
本书的这一部分研究算法设计和分析的基本工具与准备知识。7 {; d6 N2 G' }, \" p E6 N6 |
第1章是为本书其余部分做准备的。这一章将讨论一些简单算法的例子,这些算法用来
+ R1 i8 J0 @3 k4 e解决几乎在所有讦算机科学应用中都会遇到的基本问题,包括搜索、合并和排序。参考这些
: f/ S7 m+ i0 `/ {+ p/ ^; I! U示例算法,接着研究作为算法分析基础的数学知识,尤其对如何分析一个给定算法的运行时
$ w0 L" ?* q% Y' X- N间和所需空阊进行了详細研究。
' P: a( ]2 h6 y! _% O2 S$ ~/ ?第2章研究的是算法分析所需的最基本的数学背景知识,详细讲述了分析算法时最常遇
7 q% |% ^7 k( w/ w- P! I" t4 Z到的求和与递推关系。需要着重强调的是分治递推的解决方法,因为它是分析分治这一大类
/ F0 N" J( ?/ c& B算法的基础。这里不打算在本书中讨论一般递推式的解与生成函数的方法,要详细了解这部
: I& \+ n: x/ W/ j6 K' E8 W* P分内容的读者,可以参考标准的离散数学书。
% [0 }& s9 W. T( |, P第3章回顾了一些在算法设计中经常使用的基本的数据结构。本章没有深入进行讨论3 E( K; D2 ~ A' }, P- E% ]
如要了解更加全面的知识,可以参考标准的数据结构书
" ^9 A4 y# i: p4 n第4章较详尽地讨论用来保持优先队列和不相交集的两种基本数据结构。在许多有效算% n8 Q" l) L) B# `
法中(特别是图的算法设计中),这两种数据结构(堆和不相交集数据结构)被用做构件模块4 c: l/ ~$ g; X" ^% O h
本书中,堆用来设计有效排序算法 HEAPSORT。在第8章中,堆还是解决单源最短路径问题、6 q: x- d$ r5 d# N, G+ Q
最小生成树问题和为数据压縮寻找可变长编码问题的有效算法,堆也被用在分支限界法中5 I- o# i) H# l! q- U3 E9 h
(在13.5节讨论)。8.3节的算法 KRUSKAL将用不相交集数据结构来寻找无向图中的最小生
& G% e' Y$ B% n, Q" L3 f6 U成树。在有关文献中,这两种数据结构都被广泛用来设计更加复杂的算法。5 n; z$ ?" `; H. s- _# u
! w8 S& B2 W- y% X
2 F% M. r) G5 j. `2 v" S$ G0 K6 p( e5 [. e. |
$ _8 G" A7 \! R7 \
' S2 A! d$ ~1 J% i0 Y
% J8 o7 t9 V, v$ l/ a8 v1 k资源下载地址和密码(百度云盘): [/hide] 百度网盘信息回帖可见
& C" m: d9 G$ C! J! N3 B
: U5 V1 r! P% w) W' _: T
* I* D3 Q% C, F$ S+ X1 l0 _( a* G0 W: G
本资源由Java自学网收集整理【www.javazx.com】 |
|