![Page 1: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/1.jpg)
Intelligent Networking Laboratory H.CHOO 1/82Copyright 2000-2020 Intelligent Networking Laboratory
Lecture 3.
Recurrences / Heapsort
T. H. Cormen, C. E. Leiserson and R. L. Rivest
Introduction to Algorithms, 3rd Edition, MIT Press, 2009
Sungkyunkwan University
Hyunseung Choo
![Page 2: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/2.jpg)
Intelligent Networking Laboratory H.CHOO 2/82
Overview for Recurrences
Define what a recurrence is
Discuss three methods of solving recurrences
Substitution method
Recursion-tree method
Master method
Examples of each method
![Page 3: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/3.jpg)
Intelligent Networking Laboratory H.CHOO 3/82
Definition
A recurrence is an equation or inequality that describes
a function in terms of its value on smaller inputs.
Example from MERGE-SORT
T(n) =(1) if n=1
2T(n/2) + (n) if n>1
![Page 4: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/4.jpg)
Intelligent Networking Laboratory H.CHOO 4/82
Technicalities
Normally, independent variables only assume integral
values
Example from MERGE-SORT revisited
T(n) =(1) if n=1
T(n/2) + T(n/2) + (n) if n>1
For simplicity, ignore floors and ceilings – often
insignificant
![Page 5: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/5.jpg)
Intelligent Networking Laboratory H.CHOO 5/82
Technicalities
Boundary conditions (small n) are also glossed over
Value of T(n) assumed to be small constant for small n
T(n) = 2T(n/2) + (n)
![Page 6: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/6.jpg)
Intelligent Networking Laboratory H.CHOO 6/82
Substitution Method
Involves two steps:
Guess the form of the solution
Use mathematical induction to find the constants and show
the solution works
Drawback
Applied only in cases where it is easy to guess at solution
Useful in estimating bounds on true solution even if
latter is unidentified
![Page 7: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/7.jpg)
Intelligent Networking Laboratory H.CHOO 7/82
Substitution Method
Example:
T(n) = 2T(n/2) + n
Guess:
T(n) = O(n lg n)
Prove by induction:
T(n) cn lg n
for suitable c>0.
![Page 8: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/8.jpg)
Intelligent Networking Laboratory H.CHOO 8/82
Inductive Proof
Networking Laboratory 8/82
We’ll not worry about the basis case for the moment –
we’ll choose this as needed – clearly we have:
T(1) = (1) cn lg n
Inductive hypothesis: For values of n < k the inequality holds, i.e., T(n) cn lg n
We need to show that this holds for n = k as well.
![Page 9: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/9.jpg)
Intelligent Networking Laboratory H.CHOO 9/82
Inductive Proof
Networking Laboratory 9/82
In particular, for n = k/2, the inductive hypothesis
should hold, i.e.,
T(k/2) c k/2 lg k/2
The recurrence gives us:
T(k) = 2T(k/2) + k
Substituting the inequality above yields:
T(k) 2[c k/2 lg k/2] + k
![Page 10: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/10.jpg)
Intelligent Networking Laboratory H.CHOO 10/82
Inductive Proof
Networking Laboratory 10/82
Because of the non-decreasing nature of the functions
involved, we can drop the “floors” and obtain:
T(k) 2[c (k/2) lg (k/2)] + k
Which simplifies to:
T(k) ck (lg k − lg 2) + k
Or, since lg 2 = 1, we have:
T(k) ck lg k − ck + k = ck lg k + (1− c)k
So if c 1, T(k) ck lg k Q.E.D.
![Page 11: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/11.jpg)
Intelligent Networking Laboratory H.CHOO 11/82
Practice Problems
Use the substitution method to show that
Networking Laboratory 11/82
)()( 2nOnT
=
+=
1)1(
)3/(7)( 2
T
nnTnT
![Page 12: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/12.jpg)
Intelligent Networking Laboratory H.CHOO 12/82
Recursion-Tree Method
Straightforward technique of coming up with a good
guess
Can help the Substitution Method
Recursion tree: visual representation of recursive call
hierarchy where each node represents the cost of a
single subproblem
Networking Laboratory 12/82
![Page 13: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/13.jpg)
Intelligent Networking Laboratory H.CHOO 13/82
Recursion-Tree Method
Networking Laboratory 13/82
T(n) = 3T(n/4) + (n2)
![Page 14: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/14.jpg)
Intelligent Networking Laboratory H.CHOO 14/82
Recursion-Tree Method
Networking Laboratory 14/82
T(n) = 3T(n/4) + (n2)
![Page 15: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/15.jpg)
Intelligent Networking Laboratory H.CHOO 15/82
Recursion-Tree Method
T(n) = 3T(n/4) + (n2)
![Page 16: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/16.jpg)
Intelligent Networking Laboratory H.CHOO 16/82
Recursion-Tree Method
![Page 17: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/17.jpg)
Intelligent Networking Laboratory H.CHOO 17/82
Recursion-Tree Method
Gathering all the costs together:
T(n) = (3/16)icn2 + (nlog43) i=0
log4n−1
T(n) (3/16)icn2 + o(n) i=0
T(n) (1/(1−3/16))cn2 + o(n)
T(n) (16/13)cn2 + o(n)
T(n) = O(n2)
![Page 18: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/18.jpg)
Intelligent Networking Laboratory H.CHOO 18/82
Recursion-Tree Method
T(n) = T(n/3) + T(2n/3) + O(n)
![Page 19: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/19.jpg)
Intelligent Networking Laboratory H.CHOO 19/82
Recursion-Tree Method
An overestimate of the total cost:
T(n) = cn + (nlog3/22) i=0
log3/2n−1
T(n) = O(n lg n) + (n lg n)
Counter-indications:
T(n) = O(n lg n)
Notwithstanding this, use as “guess”:
![Page 20: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/20.jpg)
Intelligent Networking Laboratory H.CHOO 20/82
Substitution Method
Recurrence:
T(n) = T(n/3) + T(2n/3) + cn
Guess:
T(n) = O(n lg n)
Prove by induction:
T(n) dn lg n
for suitable d>0 (we already use c)
![Page 21: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/21.jpg)
Intelligent Networking Laboratory H.CHOO 21/82
Inductive Proof
Again, we’ll not worry about the basis case
Inductive hypothesis: For values of n < k the inequality holds, i.e., T(n) dn lg n
We need to show that this holds for n = k as well.
In particular, for n = k/3, and n = 2k/3, the inductive
hypothesis should hold…
![Page 22: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/22.jpg)
Intelligent Networking Laboratory H.CHOO 22/82
Inductive Proof
That is
T(k/3) d k/3 lg k/3
T(2k/3) d 2k/3 lg 2k/3
The recurrence gives us:
T(k) = T(k/3) + T(2k/3) + ck
Substituting the inequalities above yields:
T(k) [d (k/3) lg (k/3)] + [d (2k/3) lg (2k/3)] + ck
![Page 23: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/23.jpg)
Intelligent Networking Laboratory H.CHOO 23/82
Inductive Proof
Networking Laboratory 23/82
Expanding, we get
T(k) [d (k/3) lg k − d (k/3) lg 3] +
[d (2k/3) lg k − d (2k/3) lg(3/2)] + ck
Rearranging, we get:
T(k) dk lg k − d[(k/3) lg 3 + (2k/3) lg(3/2)] + ck
T(k) dk lg k − dk[lg 3 − 2/3] + ck
When dc/(lg3 − (2/3)), we should have
the desired:
T(k) dk lg k
![Page 24: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/24.jpg)
Intelligent Networking Laboratory H.CHOO 24/82
Practice Problems
Use the recursion tree method to show that )()( 2nnT 2)2/()4/()( nnTnTnT ++=
![Page 25: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/25.jpg)
Intelligent Networking Laboratory H.CHOO 25/82
Master Method
Provides a “cookbook” method for solving recurrences
Recurrence must be of the form:
T(n) = aT(n/b) + f(n)
where a1 and b>1 are constants and f(n) is an
asymptotically positive function.
![Page 26: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/26.jpg)
Intelligent Networking Laboratory H.CHOO 26/82
Master Method
Theorem 4.1:
Given the recurrence previously defined, we have:
Networking Laboratory 26/82
1. If f(n) = O(n logba−)
for some constant >0,
then T(n) = (n logba)
2. If f(n) = (n logba),
then T(n) = (nlogba lg n)
![Page 27: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/27.jpg)
Intelligent Networking Laboratory H.CHOO 27/82
Master Method
Networking Laboratory 27/82
3. If f(n) = (n logba+)
for some constant >0,
and if
af(n/b) cf(n)
for some constant c<1
and all sufficiently large n,
then T(n) = (f(n))
![Page 28: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/28.jpg)
Intelligent Networking Laboratory H.CHOO 28/82
Example
Estimate bounds on the following recurrence:
N
e
t
w
o
r
k
i
n
g
L
a
b
o
r
a
t
o
r
y
2
8
/
8
2
Use the recursion tree method to arrive at a “guess” then verify
using induction
Point out which case in the Master Method this falls in
![Page 29: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/29.jpg)
Intelligent Networking Laboratory H.CHOO 29/82
Recursion Tree
Recurrence produces the following tree:
N
e
t
w
o
r
k
i
n
g
L
a
b
o
r
a
t
o
r
y
2
9
/
8
2
![Page 30: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/30.jpg)
Intelligent Networking Laboratory H.CHOO 30/82
Cost Summation
Collecting the level-by-level costs:
N
e
t
w
o
r
k
i
n
g
L
a
b
o
r
a
t
o
r
y
3
0
/
8
2 A geometric series with base less than one;
converges to a finite sum, hence, T(n) = (n2)
![Page 31: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/31.jpg)
Intelligent Networking Laboratory H.CHOO 31/82
Exact Calculation
If an exact solution is preferred:
N
e
t
w
o
r
k
i
n
g
L
a
b
o
r
a
t
o
r
y
3
1
/
8
2
Using the formula for a partial geometric series:
![Page 32: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/32.jpg)
Intelligent Networking Laboratory H.CHOO 32/82
Exact Calculation
Solving further:
N
e
t
w
o
r
k
i
n
g
L
a
b
o
r
a
t
o
r
y
3
2
/
8
2
![Page 33: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/33.jpg)
Intelligent Networking Laboratory H.CHOO 33/82
Master Theorem (Simplified)
Networking Laboratory 33/82
![Page 34: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/34.jpg)
Intelligent Networking Laboratory H.CHOO 34/82
Practice Problems
Use Master theorem to find asymptotic bound.
a.
b.
c.
nnTnT += )2/(4)(
2)2/(4)( nnTnT +=
3)2/(4)( nnTnT +=
![Page 35: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/35.jpg)
Intelligent Networking Laboratory H.CHOO 35/82
Introduction for Heapsort
Heapsort
Running time: O(n lg n)
Like merge sort
Sorts in place: only a constant number of array elements
are stored outside the input array at any time
Like insertion sort
Heap
A data structure used by Heapsort to manage information
during the execution of the algorithm
Can be used as an efficient priority queue
![Page 36: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/36.jpg)
Intelligent Networking Laboratory H.CHOO 36/82
Perfect Binary Tree
For binary tree with height h
All nodes at levels h–1 or less have 2 children (full)
h = 1 h = 3h = 2
h = 0
![Page 37: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/37.jpg)
Intelligent Networking Laboratory H.CHOO 37/82
Complete Binary Trees
For binary tree with height h
All nodes at levels h–2 or less have 2 children (full)
All leaves on level h are as far left as possible
h = 1
h = 2
h = 0
![Page 38: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/38.jpg)
Intelligent Networking Laboratory H.CHOO 38/82
Complete Binary Trees
h = 3
![Page 39: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/39.jpg)
Intelligent Networking Laboratory H.CHOO 39/82
Heaps
Two key properties
Complete binary tree
Value at node
Smaller than or equal to values in subtrees
Greater than or equal to values in subtrees
Example max-heap
Y X
Z X
Y
X
Z
![Page 40: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/40.jpg)
Intelligent Networking Laboratory H.CHOO 40/82
Heap and Non-heap Examples
Min-heaps Non-heaps
6
2
22
8 45 25
6
2
22
8 45 25
8
6 455
6 22
25
5
5 45
5
![Page 41: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/41.jpg)
Intelligent Networking Laboratory H.CHOO 41/82
Binary Heap
An array object that can be viewed as a nearly
complete binary tree
Each tree node corresponds to an array element
that stores the value in the tree node
The tree is completely filled on all levels except possibly the
lowest, which is filled from the left up to a point
A has two attributes
length[A]: number of elements in the array
heap-size[A]: number of elements in the heap stored within A
heap-size[A] length[A]
max-heap and min-heap
![Page 42: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/42.jpg)
Intelligent Networking Laboratory H.CHOO 42/82
A Max-heap
![Page 43: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/43.jpg)
Intelligent Networking Laboratory H.CHOO 43/82
Length and Heap-Size
11 7
711
Length = 10
Heap-Size = 7
![Page 44: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/44.jpg)
Intelligent Networking Laboratory H.CHOO 44/82
Heap Computation
Given the index i of a node, the indices of its parent,
left child, and right child can be computed simply:
12:)(
2:)(
2/:)(
+ireturniRIGHT
ireturniLEFT
ireturniPARENT
![Page 45: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/45.jpg)
Intelligent Networking Laboratory H.CHOO 45/82
Heap Computation
16
14
8 7
142
10
9 3
0
1
2
3
parent(i) = floor(i/2)
left-child(i) = 2i
right-child(i)= 2i +1
1
2 3
4 5 6 7
8 9 10
16 14 10 8 7 9 3 2 4 1
1 2 3 4 5 6 7 8 9 10
![Page 46: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/46.jpg)
Intelligent Networking Laboratory H.CHOO 46/82
Heap Property
Heap property
The property that the values in the node must satisfy
Max-heap property, for every node i other than the
root
A[PARENT(i)] A[i]
The value of a node is at most the value of its parent
The largest element in a max-heap is stored at the root
The subtree rooted at a node contains values
no larger than that contained at the node itself
![Page 47: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/47.jpg)
Intelligent Networking Laboratory H.CHOO 47/82
Heap Height
The height of a node in a heap
The number of edges on the longest simple downward path
from
the node to a leaf
The height of a heap is the height of its root
The height of a heap of n elements is (lg n)
Exercise 6.1-2 on page 129
![Page 48: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/48.jpg)
Intelligent Networking Laboratory H.CHOO 48/82
Heap Procedures
MAX-HEAPIFY
Maintains the max-heap property
O(lg n)
BUILD-MAX-HEAP
Produces a max-heap from an unordered input array
O(n)
HEAPSORT
Sorts an array in place
O(n lg n)
![Page 49: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/49.jpg)
Intelligent Networking Laboratory H.CHOO 49/82
Maintaining the Heap Property
MAX-HEAPIFY
Inputs: an array A and an index i into the array
Assume the binary tree rooted at LEFT(i) and RIGHT(i) are max-heaps,
but A[i] may be smaller than its children
violate the max-heap property
MAX-HEAPIFY let the value at A[i] floats down in the max-heap
![Page 50: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/50.jpg)
Intelligent Networking Laboratory H.CHOO 50/82
Example of MAX-HEAPIFY
16
4
14 7
18
10
9 3
4 < 14
2
![Page 51: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/51.jpg)
Intelligent Networking Laboratory H.CHOO 51/82
Example of MAX-HEAPIFY
16
14
4 7
18
10
9 3
4 < 8
2
![Page 52: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/52.jpg)
Intelligent Networking Laboratory H.CHOO 52/82
Example of MAX-HEAPIFY
16
14
8 7
14
10
9 3
2
![Page 53: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/53.jpg)
Intelligent Networking Laboratory H.CHOO 53/82
MAX-HEAPIFY
Extract the indices of LEFT and RIGHT
children of i
Choose the largest of A[i], A[l], A[r]
Float down A[i] recursively
![Page 54: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/54.jpg)
Intelligent Networking Laboratory H.CHOO 54/82
MAX-HEAPIFY
Recursive versionInteractive version
![Page 55: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/55.jpg)
Intelligent Networking Laboratory H.CHOO 55/82
Running Time of MAX-HEAPIFY
(1) to find out the largest among
A[i], A[LEFT(i)], and A[RIGHT(i)]
Plus the time to run MAX-HEAPIFY on a
subtree rooted at one of the children of node i
The children’s subtrees each have size
at most 2n/3 (why?)
the worst case occurs when the last row of the tree is
exactly half full
T(n) T(2n/3) + (1)
By case 2 of the master theorem
T(n) = O(lg n)
7/11 = 0.63
![Page 56: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/56.jpg)
Intelligent Networking Laboratory H.CHOO 56/82
Heapify Example
![Page 57: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/57.jpg)
Intelligent Networking Laboratory H.CHOO 57/82
Building a Max-Heap
Observation: A[(n/2+1)..n] are all leaves of the tree
Exercise 6.1-7 on page 130
Each is a 1-element heap to begin with
Upper bound on the running time
O(lg n) for each call to MAX-HEAPIFY, and call n times → O(n lg n)
Not tight
![Page 58: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/58.jpg)
Intelligent Networking Laboratory H.CHOO 58/82
Building a
Max-Heap
![Page 59: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/59.jpg)
Intelligent Networking Laboratory H.CHOO 59/82
Loop Invariant
At the start of each iteration of the for loop of lines 2-3, each node i+1,
i+2, .., n is the root of a max-heap
Initialization: Prior to the first iteration of the loop, i = n/2. Each
node n/2+1, n/2+2,.., n is a leaf and the root of a trivial max-heap.
Maintenance: Observe that the children of node i are numbered
higher than i. By the loop invariant, therefore, they are both roots of
max-heaps. This is precisely the condition required for the call
MAX-HEAPIFY(A, i) to make node i a max-heap root. Moreover, the
MAX-HEAPIFY call preserves the property that nodes i+1, i+2, …, n
are all roots of max-heaps. Decrementing i in the for loop update
reestablishes the loop invariant for the next iteration.
Termination: At termination, i=0. By the loop invariant, each node 1, 2, …,
n
is the root of a max-heap. In particular, node 1 is.
![Page 60: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/60.jpg)
Intelligent Networking Laboratory H.CHOO 60/82
Cost for Build-MAX-HEAP
Heap-properties of an n-element heap
Height = lg n
At most n/2h+1 nodes of any height h
Exercise 6.3-3 on page 135
)()2
()2
()( 2 0
lg
0
lg
01
nOh
nOh
nOhOn
hh
n
hh
n
hh
===
===+
Ignore the constant ½ 2
)2
11(
21
2 20
=−
=
=hh
h
20 )1( x
xkx
k
k
−=
=(for |x| < 1)
![Page 61: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/61.jpg)
Intelligent Networking Laboratory H.CHOO 61/82
Heapsort
Using BUILD-MAX-HEAP to build a max-heap on the input array A[1..n],
where n=length[A]
Put the maximum element, A[1], to A[n]
Then discard node n from the heap by decrementing heap-size(A)
A[2..n-1] remain max-heaps, but A[1] may violate
call MAX-HEAPIFY(A, 1) to restore the max-heap property
for A[1..n-1]
Repeat the above process from n down to 2
Cost: O(n lg n)
BUILD-MAX-HEAP: O(n)
Each of the n-1 calls to MAX-HEAPIFY takes time O(lg n)
![Page 62: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/62.jpg)
Intelligent Networking Laboratory H.CHOO 62/82
Example: Heapsort
16
14
8 7
142
10
9 3
1
2 3
4 5 6 7
8 9 10
16 14 10 8 7 9 3 2 4 1
![Page 63: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/63.jpg)
Intelligent Networking Laboratory H.CHOO 63/82
Example: Heapsort (2)
14
8
4 7
1612
10
9 3
1
2 3
4 5 6 7
8 9 10
![Page 64: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/64.jpg)
Intelligent Networking Laboratory H.CHOO 64/82
Example: Heapsort (3)
10
8
4 7
16142
9
1 3
1
2 3
4 5 6 7
8 9 10
![Page 65: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/65.jpg)
Intelligent Networking Laboratory H.CHOO 65/82
Example: Heapsort (4)
9
8
4 7
161410
3
1 2
1
2 3
4 5 6 7
8 9 10
![Page 66: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/66.jpg)
Intelligent Networking Laboratory H.CHOO 66/82
Example: Heapsort (5)
7
4
1 2
161410
3
8 9
1
2 3
4 5 6 7
8 9 10
![Page 67: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/67.jpg)
Intelligent Networking Laboratory H.CHOO 67/82
Example: Heapsort (6)
4
2
1 7
161410
3
8 9
1
2 3
4 5 6 7
8 9 10
![Page 68: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/68.jpg)
Intelligent Networking Laboratory H.CHOO 68/82
Example: Heapsort (7)
1
2
4 7
161410
3
8 9
1
2 3
4 5 6 7
8 9 10
![Page 69: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/69.jpg)
Intelligent Networking Laboratory H.CHOO 69/82
Example: Heapsort (8)
1
2
4 7
161410
3
8 9
1
2 3
4 5 6 7
8 9 10
1 2 3 4 7 8 9 10 14 16
![Page 70: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/70.jpg)
Intelligent Networking Laboratory H.CHOO 70/82
Heapsort Algorithm
![Page 71: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/71.jpg)
Intelligent Networking Laboratory H.CHOO 71/82
Heapsort Algorithm
![Page 72: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/72.jpg)
Intelligent Networking Laboratory H.CHOO 72/82
Heap & Heap Sort Algorithm
Video Content
An illustration of Heap and Heap Sort.
![Page 73: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/73.jpg)
Intelligent Networking Laboratory H.CHOO 73/82
Heap & Heap Sort Algorithm
![Page 74: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/74.jpg)
Intelligent Networking Laboratory H.CHOO 74/82
Priority Queues
We can implement the priority queue ADT with a heap. The operations are:
Max(S) – returns the maximum element
Extract-Max(S) – remove and return the maximum element
Insert(x,S) – insert element x into S
Increase-Key(S,x,k) – increase x’s value to k
![Page 75: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/75.jpg)
Intelligent Networking Laboratory H.CHOO 75/82
Extract-Max
Heap-Maximum(A) return A[1]
Heap-Extract-Max(A)
1. if heapsize[A] < 1
2. then error “heap underflow”
3. max A[1]
4. A[1] A[heapsize[A]]
5. heapsize[A] heapsize[A] –1
6. Max-Heapify(A,1)
7. return max
(1)
O(lg n)
![Page 76: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/76.jpg)
Intelligent Networking Laboratory H.CHOO 76/82
Increase-Key
Heap-Increase-key(A, i, key)
1. if key < A[i]
2. then error “new key smaller than existing one”
3. A[i] key
4. while i > 1 and A[parent(i)] < A[i]
5. do Exchange(A[i], parent(A[i]))
6. i parent(i)
O(lg n)
![Page 77: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/77.jpg)
Intelligent Networking Laboratory H.CHOO 77/82
Example: increase key (1)
16
14
8 7
142
10
9 3
1
2 3
4 5 6 7
8 9 10
increase 4 to 15
![Page 78: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/78.jpg)
Intelligent Networking Laboratory H.CHOO 78/82
Example: increase key (2)
16
14
8 7
1152
10
9 3
1
2 3
4 5 6 7
8 9 10
![Page 79: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/79.jpg)
Intelligent Networking Laboratory H.CHOO 79/82
Example: increase key (3)
16
14
15 7
182
10
9 3
1
2 3
4 5 6 7
8 9 10
![Page 80: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/80.jpg)
Intelligent Networking Laboratory H.CHOO 80/82
Example: increase key (4)
16
15
14 7
182
10
9 3
1
2 3
4 5 6 7
8 9 10
![Page 81: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/81.jpg)
Intelligent Networking Laboratory H.CHOO 81/82
Insert-Max
Heap-Insert-Max(A, key)
1. heapsize[A] heapsize[A] + 1
2. A[heapsize[A]] -∞3. Heap-Increase-Key(A, heapsize[A], key)
O(lg n)
![Page 82: Lecture 3. Recurrences / Heapsort - SKKUmonet.skku.edu/wp-content/uploads/2020/03/Algorithm_03.pdf · 2020. 3. 8. · Recurrences / Heapsort T. H. Cormen, C. E. Leiserson and R. L](https://reader036.vdocument.in/reader036/viewer/2022062605/5fcb595eb57e5944e93e2bc9/html5/thumbnails/82.jpg)
Intelligent Networking Laboratory H.CHOO 82/82
Practice Problems
Show the resulting heap after insert 20 into the following
heap