Algorithm Analysis
Program Analysis
- 2.1. What value is returned by the following function? Express your answer as a function of
. Give the worst-case running time using the Big Oh notation.
mystery(n)
r:=0
for i:=1 to n-1 do
for j:=i+1 to n do
for k:=1 to j do
r:=r+1
return(r)
Solution
- 2.2. What value is returned by the following function? Express your answer as a function of
. Give the worst-case running time using Big Oh notation.
pesky(n)
r:=0
for i:=1 to n do
for j:=1 to i do
for k:=j to i+j do
r:=r+1
return(r)
- 2.3. What value is returned by the following function? Express your answer as a function of
. Give the worst-case running time using Big Oh notation.
prestiferous(n)
r:=0
for i:=1 to n do
for j:=1 to i do
for k:=j to i+j do
for l:=1 to i+j-k do
r:=r+1
return(r)
Solution
- 2.4. What value is returned by the following function? Express your answer as a function of
. Give the worst-case running time using Big Oh notation.
conundrum(
)
for
to
do
for
to
do
for
to
do
return(r)
- 2.5. Consider the following algorithm: (the print operation prints a single asterisk; the operation
doubles the value of the variable
).
for
to
while (
):
print '*'
- Let
be the complexity of this algorithm (or equivalently the number of times * is printed). Proivde correct bounds for
, and
, ideally converging on
.
Solution
- 2.6. Suppose the following algorithm is used to evaluate the polynomial

for
to
do
- How many multiplications are done in the worst-case? How many additions?
- How many multiplications are done on the average?
- Can you improve this algorithm?
- 2.7. Prove that the following algorithm for computing the maximum value in an array
is correct.
max(A)
for
to n do
if
then
return (m)
Solution
Big Oh
- 2.8. True or False?
- Is
?
- Is
?
- 2.9. For each of the following pairs of functions, either
is in
,
is in
, or
. Determine which relationship is correct and briefly explain why.
;
+ 
; 
; 
; 
; 
; 
; 
; 
Solution
- 2.10. For each of the following pairs of functions
and
, determine whether
,
, or both.
, 
, 
, 
, 
, 
, 
- 2.11. For each of the following functions, which of the following asymptotic bounds hold for
?





Solution
- 2.12. Prove that
.
- 2.13. Prove that
.
Solution
- 2.14. Prove or disprove:
.
- 2.15. Suppose you have algorithms with the five running times listed below. (Assume these are the exact running times.) How much slower do each of these inputs get when you (a) double the input size, or (b) increase the input size by one?
- (a)
(b)
(c)
(d)
(e) 
Solution
- 2.16. Suppose you have algorithms with the six running times listed below. (Assume these are the exact number of operations performed as a function of input size
.)Suppose you have a computer that can perform
operations per second. For each algorithm, what is the largest input size n that you can complete within an hour?
- (a)
(b)
(c)
(d)
(e)
(f) 
- 2.17. For each of the following pairs of functions
and
, give an appropriate positive constant
such that
for all
.
, 
, 
, 
Solution
- 2.18. Prove that if
and
, then
.
- 2.19. Prove that if
and
, then
.
Solution
- 2.20. Prove that if
and
, then 
- 2.21. Prove for all
and all sets of constants
, 
Solution
- 2.22. Show that for any real constants
and
, 
- 2.23. List the functions below from the lowest to the highest order. If any two or more are of the same order, indicate which.
Solution
- 2.24
- 2.25
Solution
- 2.26. List the functions below from the lowest to the highest order. If any two or more are of the same order, indicate which.
- 2.27. Find two functions
and
that satisfy the following relationship. If no such
and
exist, write None.
and 
and 
and 
and 
Solution
- 2.28. True or False?







- 2.29. For each of the following pairs of functions
and
, state whether
,
,
, or none of the above.
, 
, 
, 
Solution.
- 2.30. For each of these questions, briefly explain your answer.
- (a) If I prove that an algorithm takes
worst-case time, is it possible that it takes
on some inputs?
- (b) If I prove that an algorithm takes
worst-case time, is it possible that it takes
on all inputs?
- (c) If I prove that an algorithm takes
worst-case time, is it possible that it takes
on some inputs?
- (d) If I prove that an algorithm takes
worst-case time, is it possible that it takes
on all inputs?
- (e) Is the function
, where
for even
and
for odd
?
- 2.31. For each of the following, answer yes, no, or can't tell. Explain your reasoning.
- (a) Is
?
- (b) Is
?
- (c) Is
?
- (d) Is
?
Solution
- 2.32. For each of the following expressions
find a simple
such that
.
.
.
.
.
- 2.33. Place the following functions into increasing asymptotic order.
,
,
,
.
Solution
- 2.34. Which of the following are true?
.
.
.
- 2.35. For each of the following functions
find a simple function
such that
.
.
.
.

Solution
- 2.36. For each pair of expressions
below, indicate whether
is
,
,
,
, or
of
. Note that zero, one or more of these relations may hold for a given pair; list all correct ones.
Summations
- 2.37. Find an expression for the sum of the
th row of the following triangle, and prove its correctness. Each entry is the sum of the three entries directly above it. All non existing entries are considered 0.
Solution
- 2.38. Assume that Christmas has
days. Exactly how many presents did my true love send me? (Do some research if you do not understand this question.)
- 2.39
Solution
- 2.40. Consider the following code fragment.
for i=1 to n do
for j=i to 2*i do
output foobar
- Let
denote the number of times `foobar' is printed as a function of
.
- Express
as a summation (actually two nested summations).
- Simplify the summation. Show your work.
- 2.41.Consider the following code fragment.
for i=1 to n/2 do
for j=i to n-i do
for k=1 to j do
output foobar
- Assume
is even. Let
denote the number of times `foobar' is printed as a function of
.
- Express
as three nested summations.
- Simplify the summation. Show your work.
Solution
- 2.42. When you first learned to multiply numbers, you were told that
means adding
a total of
times, so
. What is the time complexity of multiplying two
-digit numbers in base
(people work in base 10, of course, while computers work in base 2) using the repeated addition method, as a function of
and
. Assume that single-digit by single-digit addition or multiplication takes
time. (Hint: how big can
be as a function of
and
?)
- 2.43. In grade school, you learned to multiply long numbers on a digit-by-digit basis, so that
. Analyze the time complexity of multiplying two
-digit numbers with this method as a function of
(assume constant base size). Assume that single-digit by single-digit addition or multiplication takes
time.
Solution
Logartihms
- 2.44. Prove the following identities on logarithms:
- Prove that

- Prove that

- Prove that

- Prove that

- 2.45. Show that

Solution
- 2.46. Prove that that the binary representation of
has
+
bits.
- 2.47. In one of my research papers I give a comparison-based sorting algorithm that runs in
. Given the existence of an
lower bound for sorting, how can this be possible?
Solution
Interview Problems
- 2.48. You are given a set
of
numbers. You must pick a subset
of
numbers from
such that the probability of each element of
occurring in
is equal (i.e., each is selected with probability
). You may make only one pass over the numbers. What if
is unknown?
- 2.49. We have 1,000 data items to store on 1,000 nodes. Each node can store copies of exactly three different items. Propose a replication scheme to minimize data loss as nodes fail. What is the expected number of data entries that get lost when three random nodes fail?
Solution
- 2.50. Consider the following algorithm to find the minimum element in an array of numbers
. One extra variable
is allocated to hold the current minimum value. Start from A[0]; "tmp" is compared against
,
,
,
in order. When
,
. What is the expected number of times that the assignment operation
is performed?
- 2.51. You are given ten bags of gold coins. Nine bags contain coins that each weigh 10 grams. One bag contains all false coins that weigh 1 gram less. You must identify this bag in just one weighing. You have a digital balance that reports the weight of what is placed on it.
Solution
- 2.52. You have eight balls all of the same size. Seven of them weigh the same, and one of them weighs slightly more. How can you find the ball that is heavier by using a balance and only two weightings?
- 2.53. Suppose we start with
companies that eventually merge into one big company. How many different ways are there for them to merge?
Solution
- 2.54. Six pirates must divide $300 among themselves. The division is to proceed as follows. The senior pirate proposes a way to divide the money. Then the pirates vote. If the senior pirate gets at least half the votes he wins, and that division remains. If he doesn’t, he is killed and then the next senior-most pirate gets a chance to propose the division. Now tell what will happen and why (i.e. how many pirates survive and how the division is done)? All the pirates are intelligent and the first priority is to stay alive and the next priority is to get as much money as possible.
- 2.55. Reconsider the pirate problem above, where we start with only one indivisible dollar. Who gets the dollar, and how many are killed?
Solution
Back to Chapter List