This preview shows pages 1–2. Sign up to view the full content.
COMP 271H Design and Analysis of Algorithms
2006 Fall Semester
Tutorial 2 Solution
1. You are given a set
S
of
n
points in the plane.
p
∈
S
, we use
p
x
and
p
y
to denote its
x
 and
y
coordinates. We assume that
p
x
6
=
q
x
and
p
y
6
=
q
y
for any two points
p, q
∈
S
.
A point
p
∈
S
is
maximal
if for any other point
q
∈
S
,
q
x
< p
x
or
q
y
< p
y
. Design a
divideandconquer algorithm to compute the maximal points in
O
(
n
log
n
) time.
Idea:
We ﬁrst sort
S
in increasing order of xcoordinates. In our divideandconquer algorithm,
we divide these points into a left point set and a right point, solve them recursively, and
combine these two partial solutions. We claim that this combined solution is the solution
we want to compute.
Observations:
(Note: Observation is just used to guide you thinking, it won’t be included in the solution.
But it may help in the correctness proof.)
First, what these partial solutions look like? Since we have presorted
S
in the very
beginning, we may assume that the partial point list in increasing order of xcoordinates.
Based on these assumptions, the partial point list may look like:
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
This is the end of the preview. Sign up
to
access the rest of the document.
 Spring '10
 may
 English

Click to edit the document details