- 在线时间
- 480 小时
- 最后登录
- 2026-6-1
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7823 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2934
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1174
- 主题
- 1189
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
书籍介绍
J* ^- Q3 P- H; {. [# G* _3 ^( \- D7 y4 o3 @/ c
这本教材源自于我在伊利诺伊大学香槟分校教授各种算法课程时所编写的一系列讲义。自1999年1月以来,我每年大约会教授一次这些课程。由于本科理论课程体系的变化,我在2016年对我的讲义进行了重大修订;本书则是我的修订笔记中关于最基础课程内容的一个子集,主要反映了我们新的必修大三级理论课程的算法内容。
2 _, K8 `; S/ H1 s! d
4 D# L5 a/ y6 Z, ~先决条件
6 w2 b# k7 Y6 r# d$ A/ r! X; ?6 \: g/ s0 L! K
我在伊利诺伊大学教授的算法课程有两个重要的先决条件:; k* \9 E: R0 R$ ^5 |& {, B" p
1. **离散数学**课程 Q: t, I/ ]# Z7 T' E/ S1 W
2. **基础数据结构**课程 4 I" Z5 ]2 r; \; d% k4 V! z
) t2 c H3 m5 }& i* O7 [因此,这本教材可能不适合大多数学生作为入门书籍。
8 \6 B- \5 K# t/ m+ S+ f8 Q5 y- Q7 ]( x4 k* @: c; X9 C5 P. b3 L
主要内容
5 h$ k) J; L" I$ ~' U5 V
! \$ Y; `( Q7 e3 m书中的内容涉及以下几个方面:) G. e/ m; p; I& b. \- Y
' `! U) h* H- ^7 n7 t" r9 K
- **基本数据结构**:
3 z! V: q0 r6 p* d - 队列、映射/字典、排序映射/字典、优先队列) P" o( m+ w/ Y; R* c
- 数组、链表(单向和双向、线性和循环)、二叉搜索树,至少一种形式的平衡二叉搜索树(如AVL树、红黑树、Treap、跳表或伸展树)、哈希表、二叉堆,以及最重要的,前面列表与此列表之间的区别。6 z( N& }" `) A
/ G. v! }2 w1 \- ]- **基本计算问题**:
Q- [- `$ a4 x/ ]9 w- k5 v8 H - 基本算术、排序、搜索、枚举、树的遍历(先序、中序、后序、层序等)。, h* }% r7 D% U7 I) J' {' ~0 ^
/ u+ t1 x4 r0 N/ h& r1 M, {- **基本算法**:( P" t0 c7 S7 d6 G8 o
- 基本算法、顺序搜索、二分搜索、各种排序算法(选择排序、插入排序、归并排序、堆排序、快速排序、基数排序等)、在(至少二叉)树中的广度优先搜索和深度优先搜索,以及前面列表与此列表之间的区别。; x2 B9 a& r1 l0 Z
& W0 w ]6 d: g7 M7 `" v6 e; O. P
- **初步算法分析**:
: s; A* L* ]4 j6 q W% O - 渐近符号(o, O, Θ, Ω, ω)、将循环转换为求和以及递归调用转换为递归关系、评估简单求和和递归关系。, U8 M9 J I: u/ N: C, X* p0 ?
6 V' Z7 q. C( ^
- **数学成熟度**:: B* F$ X t; V3 o7 o- [
- 对抽象、形式(尤其是递归)定义的熟悉程度,书写和理解数学论证的能力,识别和避免句法、语义和/或逻辑上的错误。 b. I6 y/ j+ [
0 O1 |) ~) F7 c {, A* q
### 书籍特点
! u! \3 _1 r- U9 D. b) ?2 i2 f! L6 w0 k( k7 C
这本书在适当上下文中简要涵盖了一些先决条件材料,但更多的是作为提醒而不是全面的介绍。对于更深入的概述,我强烈推荐以下一些免费提供的参考资料。
5 p' Z) b6 {, `. `& d
i6 V9 |" v6 g本书旨在为希望深入研究算法及其理论的学生提供一个扎实的基础,然后他们可以在此基础上进一步学习更复杂和高级的算法概念。% W6 N8 J; M- M! J) \+ Z* F
: }, K2 n& q! z1 W
9 ?' c8 T% J+ @$ Q% y; O s' n
A- L- I; w+ w% x& v |
zan
|