Difference between revisions of "Chapter 2"

From The Algorithm Design Manual Solution Wiki
Jump to navigation Jump to search
Line 101: Line 101:
  
  
:[[2.11]]. For each of the following functions, which of the following asymptotic bounds hold for <math>f(n) = O(g(n))</math>, \Theta(g(n)), \Omega(g(n))</math>?
+
:[[2.11]]. For each of the following functions, which of the following asymptotic bounds hold for <math>f(n) = O(g(n))</math>,\Theta(g(n)),\Omega(g(n))</math>?
  
 
[[2.11|Solution]]
 
[[2.11|Solution]]
Line 114: Line 114:
  
  
:2.14. Prove or disprove: <math>\THeta(n^2) = \Theta(n^2+1).
+
:2.14. Prove or disprove: <math>\Theta(n^2) = \Theta(n^2+1)<\math>.
  
  

Revision as of 19:18, 3 September 2020

Algorithm Analysis

Program Analysis

2.1. What value is returned by the following function? Express your answer as a function of [math]\displaystyle{ n }[/math]. 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 [math]\displaystyle{ n }[/math]. 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 [math]\displaystyle{ n }[/math]. 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 [math]\displaystyle{ n }[/math]. Give the worst-case running time using Big Oh notation.
  conundrum([math]\displaystyle{ n }[/math])
      [math]\displaystyle{ r:=0 }[/math]
      for [math]\displaystyle{ i:=1 }[/math] to [math]\displaystyle{ n }[/math] do
      for [math]\displaystyle{ j:=i+1 }[/math] to [math]\displaystyle{ n }[/math] do
      for [math]\displaystyle{ k:=i+j-1 }[/math] to [math]\displaystyle{ n }[/math] do
      [math]\displaystyle{ r:=r+1 }[/math]
       return(r)


2.5
2.6. Suppose the following algorithm is used to evaluate the polynomial
[math]\displaystyle{ p(x)=a_n x^n +a_{n-1} x^{n-1}+ \ldots + a_1 x +a_0 }[/math]
   [math]\displaystyle{ p:=a_0; }[/math]
   [math]\displaystyle{ xpower:=1; }[/math]
   for [math]\displaystyle{ i:=1 }[/math] to [math]\displaystyle{ n }[/math] do
   [math]\displaystyle{ xpower:=x*xpower; }[/math]
   [math]\displaystyle{ p:=p+a_i * xpower }[/math]
  1. How many multiplications are done in the worst-case? How many additions?
  2. How many multiplications are done on the average?
  3. Can you improve this algorithm?


2.7. Prove that the following algorithm for computing the maximum value in an array [math]\displaystyle{ A[1..n] }[/math] is correct.
  max(A)
     [math]\displaystyle{ m:=A[1] }[/math]
     for [math]\displaystyle{ i:=2 }[/math] to n do
           if [math]\displaystyle{ A[i] \gt  m }[/math] then [math]\displaystyle{ m:=A[i] }[/math]
     return (m)

Solution

Big Oh

2.8. True or False?
  1. Is [math]\displaystyle{ 2^{n+1} = O (2^n) }[/math]?
  2. Is [math]\displaystyle{ 2^{2n} = O(2^n) }[/math]?


2.9. For each of the following pairs of functions, either [math]\displaystyle{ f(n ) }[/math] is in [math]\displaystyle{ O(g(n)) }[/math], [math]\displaystyle{ f(n) }[/math] is in [math]\displaystyle{ \Omega(g(n)) }[/math], or [math]\displaystyle{ f(n)=\Theta(g(n)) }[/math]. Determine which relationship is correct and briefly explain why.
  1. [math]\displaystyle{ f(n)=\log n^2 }[/math]; [math]\displaystyle{ g(n)=\log n }[/math] + [math]\displaystyle{ 5 }[/math]
  2. [math]\displaystyle{ f(n)=\sqrt n }[/math]; [math]\displaystyle{ g(n)=\log n^2 }[/math]
  3. [math]\displaystyle{ f(n)=\log^2 n }[/math]; [math]\displaystyle{ g(n)=\log n }[/math]
  4. [math]\displaystyle{ f(n)=n }[/math]; [math]\displaystyle{ g(n)=\log^2 n }[/math]
  5. [math]\displaystyle{ f(n)=n \log n + n }[/math]; [math]\displaystyle{ g(n)=\log n }[/math]
  6. [math]\displaystyle{ f(n)=10 }[/math]; [math]\displaystyle{ g(n)=\log 10 }[/math]
  7. [math]\displaystyle{ f(n)=2^n }[/math]; [math]\displaystyle{ g(n)=10 n^2 }[/math]
  8. [math]\displaystyle{ f(n)=2^n }[/math]; [math]\displaystyle{ g(n)=3^n }[/math]

Solution


2.10. For each of the following pairs of functions [math]\displaystyle{ f(n) }[/math] and [math]\displaystyle{ g(n) }[/math], determine whether [math]\displaystyle{ f(n) = O(g(n)) }[/math], [math]\displaystyle{ g(n) = O(f(n)) }[/math], or both.
  1. [math]\displaystyle{ f(n) = (n^2 - n)/2 }[/math], [math]\displaystyle{ g(n) =6n }[/math]
  2. [math]\displaystyle{ f(n) = n +2 \sqrt n }[/math], [math]\displaystyle{ g(n) = n^2 }[/math]
  3. [math]\displaystyle{ f(n) = n \log n }[/math], [math]\displaystyle{ g(n) = n \sqrt n /2 }[/math]
  4. [math]\displaystyle{ f(n) = n + \log n }[/math], [math]\displaystyle{ g(n) = \sqrt n }[/math]
  5. [math]\displaystyle{ f(n) = 2(\log n)^2 }[/math], [math]\displaystyle{ g(n) = \log n + 1 }[/math]
  6. [math]\displaystyle{ f(n) = 4n\log n + n }[/math], [math]\displaystyle{ g(n) = (n^2 - n)/2 }[/math]


2.11. For each of the following functions, which of the following asymptotic bounds hold for [math]\displaystyle{ f(n) = O(g(n)) }[/math],\Theta(g(n)),\Omega(g(n))</math>?

Solution


2.12. Prove that [math]\displaystyle{ n^3 - 3n^2-n+1 = \Theta(n^3) }[/math].


2.13. Prove that [math]\displaystyle{ n^2 = O(2^n) }[/math].

Solution


2.14. Prove or disprove: <math>\Theta(n^2) = \Theta(n^2+1)<\math>.


2.15

Solution


2.16


2.17

Solution


2.18


2.19

Solution


2.20


2.21

Solution


2.22


2.23

Solution


2.24


2.25

Solution


2.26


2.27

Solution


2.28


2.29

Solution


2.30


2.31

Solution


2.32


2.33

Solution


2.34


2.35

Solution


2.36

Summations

2.37
2.38
2.39
2.40
2.41
2.42
2.43

Logartihms

2.44
2.45
2.46
2.47

Interview Problems

2.48
2.49
2.50
2.51
2.52
2.53
2.54
2.55


Back to Chapter List