NAME:
CSE 331
Introduction to Algorithm Analysis and Design
Sample Final Exam Solutions
1. (5
×
2 = 10
points
) Answer True or False to the following questions.
No justification
is required. (Recall that a statement is true only if it is logically true in all cases while
it is is false if it is not true in some case).
Note:
I’m providing justifications for the questions below for your understanding. In
the actual exam for Q1, you of course only have to say True or false.
(a) Depth First Search (DFS) is a linear time algorithm.
True
.
The input graph can be represented as an adjacency list of total size
O
(
m
+
n
). We saw in the lecture that DFS runs in time
O
(
m
+
n
) and thus, has
a linear running time.
(b)
n
is
O
(
(log
n
)
log
n
)
.
True
.
Note that
n
= 2
log
n
and (log
n
)
log
n
= 2
log log
n
·
log
n
.
Now the statement
follows as log
n
≤
log log
n
·
log
n
for large enough
n
.
(c) There is no algorithm that can compute the Minimum Spanning Tree (MST) of
a graph on
n
vertices and
m
edges in time asymptotically faster than
O
(
m
log
n
).
False
. As I mentioned in the class, there exists algorithms to compute the MST
in time
O
(
mα
(
m, n
)), where
α
(
m, n
) is the inverse Ackerman function and is
asymptotically (much) smaller than log
n
. (This fact was also mentioned with Q2
in HW 8.)
(d) Let
G
be a graph with a negative cycle. Then there is no pair of vertices that has
a finite cost shortest path.
False
. Consider a graph that has an edge (
s, t
) with cost 1 and a disjoint negative
cycle. In this graph the shortest
s

t
path has cost 1.
(e) Every computational problem on input size
n
can be solved by an algorithm with
running time polynomial in
n
.
False
.
There are many ways to show this is false, here is one.
Consider the
problem, where given
n
numbers as input, the algorithm has to output all the
permutations of the
n
numbers. Since there are
n
! permutations that need to be
output, every algorithm for this problem runs in exponential time.
2. (5
×
6 = 30
points
) Answer True or False to the following questions and
briefly
JUSTIFY
each answer.
A correct answer with no or totally incorrect justification
will get you 2 out of the total 6 points. (Recall that a statement is true only if it is
logically true in all cases while it is is false if it is not true in some case).
(a) The following algorithm to check if the input number
n
is a prime number runs
in polynomial time.
1
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
For every integer 2
≤
i
≤
√
n
, check if
i
divides
n
. If so declare
n
to be
not
a prime. If no such
i
exists, declare
n
to be a prime.
This is the end of the preview.
Sign up
to
access the rest of the document.
 Fall '11
 RUDRA
 Dynamic Programming, Analysis of algorithms, Complex number, Algorithm Analysis and Design

Click to edit the document details