0% found this document useful (0 votes)
234 views

CSC263 Final Review Part 1

This document is a study package from Easy 4.0 Education Inc. for a final review. It contains materials from the University of Toronto to support the study process. The package is distributed for free to students in Easy 4.0's review seminars and is not to be copied or sold commercially. The package contains information on basic runtime analysis and different cases to help with exam preparation.

Uploaded by

王乔峪
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
234 views

CSC263 Final Review Part 1

This document is a study package from Easy 4.0 Education Inc. for a final review. It contains materials from the University of Toronto to support the study process. The package is distributed for free to students in Easy 4.0's review seminars and is not to be copied or sold commercially. The package contains information on basic runtime analysis and different cases to help with exam preparation.

Uploaded by

王乔峪
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 35

4

E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQiaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

Disclaimer Wan
gQia
oyu
2071
4

Wan
gQia
oyu
2071
4
This a
complementary
e m ystudy package is provided by Easy 4.0 Education
e m y Inc. and its affiliated mentors. This e m y W
Aca d ca d ca d
EZpackage
study EZ A
seeks to support your study process and should be used as a complement, NOT substitute EZ A
to course material, lecture notes, problem sets, past tests and other available resources.

We acknowledge that this package contains some materials provided by professors and staff of the
University of Toronto, and the sources of these materials are cited in details wherever they appear.
4 4
2071 2071 207
n gQiaoyu
This apackage iaoyu
is distributed for free to students participating
n gQ in Easy 4.0’s review seminars, and are not n gQia
oyu
a a
y W W
my kindly W
emy in
A c ademfor sale or other commercial uses whatsoever.
A c adeWe ask you to refrain from copying coradselling
A
EZ part or in whole any information providedEZ in this package. EZ

Thank you for choosing Easy 4.0. We sincerely wish you the best of luck in all of your exams.

4 4
2071 2071
oyu oyu
an gQia Easy 4.0 Education Inc. an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 1
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQiaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

BASIC RUNTIME ANALYSIS

1. Different Cases
4 4
y u 2071 y u 2071
a o a o
gQi
Suppose t(x) is the runtime of an algorithm with input x. gQi
m y Wan m y Wan m y W
a
d e d e
ca • Worst case: T(n) = max{ t(x) : |x| = n } 当 input 大小为 n 时最坏情况下的运行时间
ca ca d e
EZ A EZ A EZ A

• Best case: T(n) = max{ t(x) : |x| = n } 当 input 大小为 n 时最好情况下的运行时间

• Average case: T(n) = E[ t(x) | |x| = n ] 当 input 大小为 n 时的平均运行时间


4 4
[Discussed in Part B]

071 071 207


i a o yu 2 i a o yu 2 aoyu
angQ angQ a ngQi
ademy W adem
y W
这里要注意 worst case 和 best case 描述的是一个算法在相同 y W
size 下, 最坏和最好的
adem
EZ Ac EZ Ac E Z Ac
的情况。 一般来讲,如果算法当中存在不同的 branch (path) , 会导致算法提前结
束, 或者省略某些步骤, 一般会出现 best case 和 worst case 的情况.

4 4
2071 2071
oyu oyu
an gQia an gQia a
em y W em y W em y W
EZ Acad EZ Acad EZ Acad
2. Asymptotic Notation

• Big-Oh:
f = O(g) means the function f(x) grows slower or at the same rate of g(x).
• Big-Omega 4 4
y u 2071 f = Ω(g) means the function f(x) grows faster or at the same rate of g(x).
y u 2071 yu 2
07
i a o i a o i a o
angQ • Big-Theta angQ angQ
e m y W e m y W e m y W
cad cad cad
f = Θ(g) means the function f(x) grows at the same rate of g(x). Also, Big-
EZ A EZ A EZ A
Theta is Big-Oh AND Big-Omega.

同样的, 这里也要注意, Big-Oh 代表的是 Upper bound of running time, 和 worst


case 一毛钱关系都没有. 相同的道理, Big-Omega
14
也和 Best case 1没有丝毫关系.
4
07 07
iao yu 2 iao yu 2
angQ angQ a
em y W em y W em y W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 2
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQiaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A E Z Ac EZ A c
3. 常见证明

• 相关 Worst Case 的证明


Worst Case 是我们最常见的证明, 证明的格式和我们之前学习过的相同, 我们有很多
0714 0714
2 2
oyu oyu
gQia
种常见方法, 在 165 中对 iterations 的直接分析, 在 gQia
yWan Wan 236 中利用 induction 来计算
y y W
a
em em em
EZ Acad runtime 等. EZ Acad EZ Acad

o Show Big-Oh of Worst Case.


要说明 for every input x of size n, t(x) is no larger than c * something, where
14
c is a positive constant. 14
207 207 207
aoyu aoyu aoyu
a ngQi o Show Big-Omega of Worst Case.
Wa ngQi Wa ngQi
ademy W a d emy a d emy
EZ Ac c c
要说明 there exists at least one input x of size n, t(x) is no smaller c *
EZ A EZ A
something, where c is a positive constant.

• 相关 Best Case 的证明


快速记忆就是直接和
2071
4 worst-case 反过来!
2071
4
oyu oyu
an gQia an gQia a
em y Wo Show Big-Oh of Best Case. em y W emy W
EZ Acad EZ Acad EZ Acad
要说明 there exists at least one input x of size n, t(x) is no larger than c *
something, where c is a positive constant.
o Show Big-Omega of Best Case.
要说明 for every input x of size n, t(x) is no smaller c * something, where c
4 4
y u 2071 is a positive constant. y u 2071 yu 2
07
i a o i a o i a o
angQ angQ angQ
e m y W e m y W e m y W
cad cad cad
EZ A EZ A EZ A
• 注意事项

o 对于 there exists 一定要确保说明存在, 必要的时候给出一个实际例子, 因为


207 14 207 14
在有些情况下, 我们脑补的
iaoyu
lower bound 的情况可能根本就不存在.
iaoyu
gQ angQ
m y Woan 证明 Big-Theta 的时候, 要注意需要证明 m y W
Big-Oh 和 Big-Omega y W
a
cade cade em
E Z A E Z A EZ Acad
o 引用 CLRS 的时候, 一定要注意说明所有 augment 和在原有 algorithm 上更
改的内容不会影响 runtime.

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 3
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQ iaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c
4. Average Case Analysis

本部分和 statistics 关系非常大, 对于 function 的 analysis 基本都很简单, 主要是要定义好


sample space, 找好 distribution, 最后求出 Expected Value, 也就是我们的 Average Case
4 4
y u 2071 y u 2071
i a o
Running Time Complexity. i a o
angQ angQ a
em y W em y W emy W
EZ Acad EZ Acad EZ Acad
a. 找 SampleSpace.
一般来说 Sample Space 就是所有可能的 inputs. For example, 对于 sorting 问题来
说, sample space 是 size n 的 list 的所有 permutation.
b. 确定 Distribution
4 4
y 2071
最常见的情况是, 我们每个
u input 2071
都有 equal probability to happen, 这样就是
y u yu 2
07
i a o i a o i a o
angQ angQ angQ
e m y W e m y W
uniform distribution. 当然还有例如 binomial distribution 等等. e m y W
cad cad cad
EZ A EZ A EZ A
c. 计算 Expected Value
根据 Distribution, 确认每种 input 的 Probability 和 cost, 并计算 Expected value.

4 4
2071 2071
oyu oyu
an gQia an gQia a
em y W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQ iaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
em y W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQ iaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 4
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQiaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 5
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
n gQ iaoyu ngQi
aoyu FINAL REVIEW aP1 n gQia
oyu
a a
y W y W y W
A c adem A c adem A c adem
EZ EZ EZ
Consider the following algorithm to find the maximum element in a list L of integers (indexes starting from 1).

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

Try to give a tight-bound on the average-case number of times that max is assigned a value by algorithm FIND-MAX.

4 4
2071 2071 207
gQiaoyu gQ iaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQ iaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQ iaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 6
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQiaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 7
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQiaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 8
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQ iaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

AMORTIZED ANAYLSIS
4 4
2071 2071
oyu oyu
ngQia n gQia
Wa关心的是在一个 sequence of operation m
Amortized dAnalysis y W
a
被执行的时候的平均时间, 在这里要注 y W
a
emy de em
E Z Ac
a
E Z Ac
a
Z Acad
意 amortized analysis 和 average case analysis 的区别. average case 是说平均来讲一个 operationE要花
的时间, 而 amortized analysis 是说连续很多次 operation 后, 平均每一次 operation 要花的时间.

我们在 CSC263 的学习中, 学习了两种 Amortized Analysis 的方法, 分别是 Aggregate


0714 Method.
Method 和 Accounting 0714 207
yu 2
ao yu 2 ao aoyu
a ngQi a ngQi a ngQi
ade my W ademy W ade my W
EZ Ac EZ Ac E Z Ac
• Aggregate Method
Aggregate method 是十分简单的两步法, 首先我们算出 for all n, n operations has a worst
case running time T(n), 这一步一般都是简单的计算或求和公式. 第二步, 我们直接通过
T(n) / n 来得到 Aggregate 714
Method 的结果. 714
0 0
iao yu 2 iao yu 2
angQ angQ a
em y W em y W emy W
EZ Acad EZ Acad EZ Acad

• Accounting Method
Accounting 4 method 与 Aggregate method 不同的是, 我们不在从 4 overall 入手考虑问题了,
y u 2071 y u 2071 yu 2
07
i a o
而是考虑在每一步上都要为下一步做准备. i a o
首先我们把每个 constant 的 operation 都 i a o
angQ angQ angQ
e m y W assignment 一个 token, 或者说一块钱. e m y W
这时我们主要需要证明的是: 我们可以找到一个 e m y W
cad cad cad
EZ A 固定的存款 surplus, 保证我们不破产, EZ A 也就是在找我们的 Credit Invariant. EZ A

在 Proof 的时候,我们主要是用 induction 的方式,来证明我们经过每一个 operation 之


后,总计的 credit 还是满足 invariant 的 (很像 iterative correctness)
4 4
2071 2071
oyu oyu
an gQia an gQia a
em y W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQ iaoyu gQ iaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 9
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQiaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 10
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQiaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 11
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQiaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 12
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQ iaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

BINARY HEAP

14 2071
4
1. Basic of Binary Heap
Qiao
yu 2
07
oyu
an g an gQia a
em y W em y W emy W
Acad Acad
EZ Binary MAX Heap 首先要满足的是一个 complete binary tree. 然后要满足的是每一个
EZ node
EZ Acad
的 value 都要小于等于它的 parent (对于 MIN Heap 是大于等于 parent). 因此, 我们首先可以得到
以下几条最基本的性质:

Root 包含是整个 4 data structure 中最大的 value. u 20714



y u 2071 y yu 2
07
i a o i a o i a o
ang• Q Left child 和 right child 没有任何关联, 在 angheap
Q 里面只有 parent-child 之间有关系. angQ
e m y W e m y W e m y W
cad • Heap 的 height 是 ⌊logn⌋, cad
所以要记住, 从 root 到 leaf 的操作都是 O(logn). cad
EZ A EZ A EZ A
• 一个有 n 个 elements 的 Binary Heap 中有 ⌈(n/2)⌉ 个 leaves.

• 最小的 element 一定在 leaf 上.

4 4
2071 2071
oyu oyu
an gQia an gQia a
em y W em y W emy W
EZ Acad EZ Acad EZ Acad

2. Implementation
yu 2
0714 2071
4
207
ngQi
ao iaoyu ngQi
aoyu
Wa angQ a
my m y W my W
cade 在 implement 一个 Binary Heap c a d e
的时候我们有两种不同的 implement 方式, 首先我们可以
c a d e
EZ A EZ A EZ A
像 implement 一个 binary tree 一样来 implement binary heap, 在这里就不多赘述了.
重要的一点是, binary heap 可以用 array 来 implement. 在这里要注意, 我们是从 index 1
开始的. 我们相当于对一个 tree representation 的 binary heap 进行了一次 level order traversal.
207 14 7 14
假如一个 node 是 indexiak.
oyuleft children 就是 2k, right children 就是 2k + 1.20这个
iaoyu
node 的 parent
ang Q an gQ a
就在 ⌊n/2⌋.
d e m y W
d e m y W emy W
a
EZ A
c
EZ A
ca
EZ Acad

4 4
2071 2071 207
gQ iaoyu gQ iaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 13
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQ iaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

3. Operations
Bubble Up & Bubble Down - O(logn): Keep comparing with Parent or Children, and
swap two nodes if necessary until the heap property is recovered. This will at most
travel the height of 714 2071
4
iaoythe
u 20binary heap. oyu
angQ an gQia a
my W m y W y W
cade - O(1): Just returned the root.
MAX d e em
E Z A EZ Aca EZ Acad

INSERT - O(logn): Put the node to the end of the heap, and bubble up.

EXTRACT_MAX - O(logn): swap the root with the last element, pop, and bubble down
the root.
4 4
2071 2071 207
gQ iaoyu Q iaoyu ngQi
aoyu
my Wan BUILD_HEAP - O(n): Reorder the unsorted
m y W
angarray into a heap. Note: it has to be anWa
y
cade array. c a d e c adem
EZ A EZ A EZ A

4. 常见题型
4 4
2071 2071
oyu oyu
an gQia an gQia a
em y W em y W emy W
EZ Acad 1. 画 Heap 找 index. EZ Acad EZ Acad

2. 最大/最小的 K 个 elements.
3. 漏斗问题
4. K 个 array merge sort.
4 4
2071 2071 207
gQ iaoyu gQ iaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
em y W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQ iaoyu gQ iaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 14
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQiaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 15
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQiaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 16
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQiaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 17
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQiaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 18
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQiaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 19
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQ iaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A Z Ac EZ A c
BINOMIAL HEAP E

1. Binomial Tree
定义: The Binomial tree is B is an ordered tree defined recursively. the binomial tree B
k 0
4 4
y u 2071
consists of a single node. The binomial tree B k
y u 2071
consists of two binomial trees B −1 that are k
a o a o
linked together.
a n gQi a n gQi a
y W W y y W
em em em
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQ iaoyu gQ iaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
Properties:

4 4
2071 2071
oyu oyu
an gQia an gQia a
em y W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQ iaoyu gQ iaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
em y W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQ iaoyu gQ iaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 20
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQ iaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A Z Ac A c
2. Binomial Heap E EZ

定义: Binomial heap 是一个满足 binomial heap property 的 binomial tree.

4 4
2071 2071
oyu oyu
an gQia an gQia a
em y W em y W emy W
EZ Acad EZ Acad EZ Acad

Property: 14 4
207 2071 207
gQ iaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade • 一个 binomial heap E最多只能有 cade
⌊log n⌋ + 1 个 binomial trees. E Z Ac
ade
EZ A ZA
• 最小的 element 一定是 root of one of the binomial trees.

3. Operations
4 4
2071 2071
oyu oyu
an gQia an gQia a
m y W em y W emy W
Aca • UNION - O(log n)
d e
EZ EZ Acad EZ Acad

根据 Binomial Heap 的定义, 是不可以有两个 order 相同的 binomial tree 存在的, 因


此如果遇到两个相同 order 的 binomial tree, 我们可以把他们 union 成一个 order +
1 的 binomial tree, 然后我们把两个 tree 中 root 较小的一个作为新的 root 以满足
binomial heap
4 的 property. 由于我们可能在 Union 4之后, 又发生了和其他 order 的
y u 2071 y u 2071 yu 2
07
ngQ i a o tree 重复的情况, 因此在最坏情况下, 我们要连续 ngQ i a o union 掉所有 binomial trees. ngQ i a o
a a a
ademy W ademy W ade my W
EZ Ac EZ Ac E Z Ac

• INSERTION - O(log n)

新建一个 order 0 的 binomial tree, 然后执行 Union.
4 4
2071 2071
oyu oyu
an gQia an gQia a
em y W em y W emy W
EZ Acad EZ Acad EZ Acad
• MINIMUM - O(log n)

根据我们之前分析过的, 我们要最多遍历 log n 个 binomial tree 来找到最小的
element.
4 4
2071 2071 207
gQ iaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 21
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQ iaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

• EXTRACT_MIN - O(log n)

找到最小 element 14
207后, 我们直接删除掉这个 node, 这样我们会把这个 2071
4 tree 变成
a o y u a o y u
order gQi gQi
y Wan较小的很多个 tree, 然后我们执行 union. Wan y y W
a
em em em
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQ iaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
em y W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQ iaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
em y W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQ iaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 22
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQiaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A Z Ac EZ A c
AVL TREE E

Operation 2071
4
2071
4
oyu oyu
an gQia an gQia a
e m y W 的学习中, Operation 的记忆是非常重要的, AVL Tree
在 AVL Tree e m y W 是通过各种 operation e m y W
ca d ca d Aca d
EZ A来保证自身能够在各种 modification 之后保持 EZ A height balanced. 在 AVL Tree 中,任意 EZleft
和 right subtree of a node, 高度的差距最多只能是 1.

• Rotation
4 4
y u 2071
Rotation 是 AVL Tree 中一个非常重要的概念, 我们要通过 rotation 来保证
y u 2071 AVL Tree aoyu 207
i a o i a o i
W angQ 在更改后还能保持 W angQ
balanaced. 既然如此, 和 rotation 关联十分紧密的就有一个概 W angQ
m y m y m y
cade cade
念: Balance factor. Balance factor 指的是左边和右边 subtree height cade
EZ A EZ A EZ A 的差, 根据
AVL Tree 的定义, balance factor 最多是正负一, 如果遇到了 BF 不大于 1 或者小于-
1 的情况, 说明我们要进行 rotation 来恢复 AVL Tree 的 property.

首先是最基本的 Left 和 Right Rotation:


4 4
y u 2071 y u 2071
a o a o
gQi i
m
对于最左和最右重的问题, 我们一般只需要一次
y Wan m y Wleft 或 right rotation
angQ 就可以解决问
m y W
a
ca d e 题. ca d e ca d e
EZ A EZ A EZ A

但是... 如果我们是中间的 node 重, 那么我就需要做 double rotation, 首先先通过一


次 left or right rotation 把这个 heavy 的 branch 移动到最左或者最右侧, 然后再进
行一次714
rotation 把整个 tree balance 好. 714
20 20 207
aoyu aoyu aoyu
a ngQi a ngQi a ngQi
ademy W ademy W ade my W
EZ Ac EZ Ac E Z Ac

4 4
2071 2071
oyu oyu
angQia an gQia a
em y W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 23
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQ iaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A E Z Ac EZ A c

• Search - O(log n)

Binary Search 的 runtime 是和 height 相关的, 由于 AVL Tree 是 balanced, 我们可以


确定为 O(log n). 0714 0714
yu 2o yu 2 o
an gQia an gQia a
e m y W e m y W emy W
Aca d Aca d Acad
EZ EZ EZ
• Insert - O(log n )

首先在 balanced binary search tree 上 insert 一个 node 要 take O(log n)的时间, 然
后在这里我们需要再加上一个
14
constant time 来进行
14
rotation 和 BF updating.
207 207 207
aoyu aoyu aoyu
a ngQi a ngQi a ngQi
ademy W ademy W ademy W
EZ Ac E Z Ac E Z Ac
• Delete - O(log n)

和 insert 类似, delete 一个 node take 了 O(log n)的时间 + constant time 来进行
rotation 和 BF updating.
2071
4
2071
4
oyu oyu
an gQia an gQia a
em y W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQ iaoyu gQ iaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E


4 4
2071 2071
gQ iaoyu gQ iaoyu
y Wan y Wan y W
a
em em em
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQ iaoyu gQ iaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 24
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQ iaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

4 4
2071 2071
oyu oyu
an gQia an gQia a
em y W em y W emy W
EZ Acad EZ Acad EZ Acad



4 4
2071 2071 207
iaoyu iaoyu aoyu
Wan Augmentation ngQi
gQ gQ
my my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
Augmentation 是我们在 design algorithm 时候最经常用到的技巧, 我们以一些现有的
algorithms 为蓝本, 增加一些 fields, 然后通过这些额外的信息, 我们可以将一些原本复杂的
计算过程简单化.

4 4
y u 2071 y u 2071
gQi attribute 可以 augment 进入 AVL Tree ?
• 什么样的 a o a o
gQi
m y Wan m y Wan m y W
a
ca d e ca d e ca d e
EZ A EZ A
通常, 我们会选择一些可以 reduce 的 factor 来 EZ A
augment 到每个 node 上, 从而减少
重复的计算. 换言之, 这个 factor 一定要满足可以在从 root 向下 search 时, 或者操
作完成后 propagate 回 root 时, 完成对这个 factor 的 update, 来保证这个 factor 的
准确性. 所有满足这一点的 factor 都可以作为我们 augment 的 fields.
4 4
2071 2071 207
gQ iaoyu g Qiaoyu ngQi
aoyu
my Wan • 常见的 augmentation 有哪些m? y Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
一般来讲, 我们经常 augment 的有 size, sum, 还有对一些特定内容的 count.

• 注意事项
1. 描述 Augmenting2071
4 的 field 的作用和内容. 2071
4
a o y u a o y u
Qi
2. g说明在所有 gQi
operation 时, 如何 propagate (update) 我们 augmenting 的 field.
m y Wan m y Wan m y W
a
ca d e 3. 说明我们得 propagation 并不会对 ca d runtime
e 造成影响. 一般来说 propagation ca d e
EZ A EZ A EZ A
会发生在 search 上, 或者回溯到 root 的时候, 也就是只在我们经过的 path,
和 rotation 触及的 node 上增加一些 constant cost. 总体而言不会改变我们的
runtime.

4 4
2071 2071 207
gQ iaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 25
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQiaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 26
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQiaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 27
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQiaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 28
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQiaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 29
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQ iaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A E Z Ac EZ A c

HASH

4 4
Hash 简单的说就是 key y u 2071value, 然后可以通过计算 key 来快速找到对应的
对应 y u 2071 value.
Qi a o Qi a o
an g an g a
em y W em y W emy W
EZ Acad EZ Acad EZ Acad
SUHA
Simple Uniform Hash Assumption, CSC263 中所讨论的 hashing 都要遵循这一 assumption.
根据这个 assumption, 我们可以说明每个 bucket 中, 放入东西的概率是相同的.
4 4
y u 2071 y u 2071 yu 2
07
o o o
ang Q
i a i a i a
W angQ angQ
emy y W emy
W
EZ A
cad Hashing Function 的选择
EZ A
cad.
em
EZ A
cad
在选择 Hash Function 的时候我们有以下三点要注意:
Should depend on every part/bit of input.
Should spread out.
Should be computed in a easy time.
4 4
u 2071 2071
a o y oyu
angQi an gQia a
em y W em y W emy W
EZ Acad EZ Acad EZ Acad
Collision & Load factor on Open Addressing / Closed Hashing
Chaining
4
071hashing 的时候不存在 collision, 那么我们可以保证在 071 4
如果, 我们在
i a o yu 2 i a o yu 2 constant 的时间内访问 iaoyu 207
angQ angQ angQ
e m y W 到 key 对应的 value. 但是在 Hash 的时候, 经常我们 e m y W item 的数量是要远大于我们 m
e
buckets
y W
cad 的数量的, 也就是说会出现 Ecollision Z Ac
ad
的情况, collision 会导致我们 hash 中每一个 cad slot 上有
EZ A EZ A
多个 item. 而我们在多个 item 上寻找我们想要的 target 就会花更多的时间.

首先, 在 SUHA 的条件下, 我们可以 assume 我们每一个 bucket 都是平均地被 load 的. 因此


如果我们有 m 个 bucket, n 个 items 的话, 我们可以说我们的 expected number of items
0714
the same for each bucket α = n / m. 0714
yu 2
o yu 2 o
angQia an gQia a
e m y W e m y W emy W
Aca d Aca d Acad
EZ EZ EZ

14
207向后找 2071
4
207
Probing,
iaoyu iaoyu aoyu
Wan
gQ
Wan
gQ a ngQi
my my my W
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 30
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQiaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A 一般 probing 的题型会提供一个 E Z Ac
probing function f(n) = n + 2^i 之类的, 那么注意这里的 i EZ A c

代表的是第 i 次 probing.



4 4
2071 2071
oyu oyu
an gQia an gQia a
em y W em y W emy W
Acad Acad Acad
EZ EZ EZ



下面内容要求背诵
4 4
2071 2071 207
gQiaoyu iaoyu ngQi
aoyu
Wan angQ Wa
my m y W emy
cade d e d
We assume that the size t of the hash table T is within a constant factor of the size of the data set
c a c a
EZ A EZ A EZ A
N; more precisely, we assume that t = κ · N, for some constant κ > 0 这里注意,constant factor
没必要是整数, 只需要说是个 constant factor 就可以了, 因为我们需要在后面说明, 只要
是 constant factor, 那么我们的 load factor 就会是个 constant, 注意:我们无需保证 k
是个大于 1 的数字。. We will also assume our hashing function satisfies the Simple Uniform
Hashing Assumption (SUHA). 4 4
y u 2071 y u 2071
a o a o
gQi
XXXXXX -> Your algorithm gQi
m y Wan m y Wan m y W
a
ca d e ca d e ca d e
EZ A EZ A EZ A
Under the simple uniform hashing assumption (SUHA), i.e., that each distinct value is equally
likely to be hashed into any one of T’s slots, the expected length of a linked list in T is α, where α
= N/t. Since t is t = κ · N, then α is Θ(1), 注意, 这里只需要说明 constant factor 就行了, 每
个 slot not necessarily 1 个东西, 可以是 2 个 or 3 个 但是还是个 constant factor.
and so the expected length of a linked list in T is Θ(1). Therefore the expected time for an
4 4
y u 2071 y u 2071
INSERT operation is Θ(1). The QUERY operation runs in constant time since accessing every yu 2
07
i a o i a o i a o
angQ element in A is a constant time operation. angQ angQ
e m y W e m y W e m y W
cad cad cad
EZ A EZ A EZ A

4 4
2071 2071
oyu oyu
an gQia an gQia a
em y W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQ iaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 31
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQiaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 32
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
n gQiaoyu ngQi
aoyu FINAL REVIEW aP1 n gQia
oyu
a a
y W y W y W
A c adem A c adem A c adem
EZ We want to keep track of student records in CSC 263 H1 (with 135 students currently enrolled). The “key”
EZ EZ

for each student will be their student number.

4 4
y u 2071 y u 2071
Consider using a hash table of size 11 with chaining. Assuming we use a hash function that satisfies simple
gQi a o
gQi a o
m y Wan m y Wan
uniform hashing, how many student records will we encounter, on average, when searching for a specific m y W
a
ca d e ca d e ca d e
student? State clearly the general expression for your answer, then give the value for this particular
EZ A EZ A EZ A
example (you can give your final answer as a fraction).

4 4
2071 2071 207
Qiaoyu gQiaoyu ngQi
aoyu
y Wang Wan a
e m my my W
cad cade Z Ac
ade
EZ A EZ A E

Consider using a different hash table with size 135 and the hash function h(N ) = sum of the individual
4 4
y u 2071 y u 2071
digits of N. (For example, h(1234567890) = 1+2+3+4+5+6+7+8+9+0 = 45.) Is this a good hash function to
a o a o
gQi
use? Give at least two good reasons to support your answer. gQi
m y Wan m y Wan m y W
a
ca d e ca d e ca d e
EZ A EZ A EZ A

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 33
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQiaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 34
4 E A S Y 0E71D4U | C S C 2 6 3 F A L L 2 0 2 1
2071 2 207
gQiaoyu ngQi
aoyu FINAL REVIEW aP1
gQia
oyu
my Wan my W
a
y W
n
cade ade adem
EZ A EZ Ac EZ A c

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E

4 4
2071 2071
oyu oyu
an gQia an gQia a
emy W em y W emy W
EZ Acad EZ Acad EZ Acad

4 4
2071 2071 207
gQiaoyu gQiaoyu ngQi
aoyu
my Wan my Wan my W
a
cade cade Z Ac
ade
EZ A EZ A E
导师:GARY KANG | EASY 4.0 UTSG校区 35

You might also like