1 of 27

Section 2

Runtime

2 of 27

Big-Oh Review

 

 

 

Main ideas:

  • In Big-O, we focus on the growth of the runtime as the input size n goes to infinity.
  • Big-O represents an upper bound on the algorithm runtime. Not necessarily tight!

3 of 27

Big-Omega and Big-Theta

4 of 27

Practice

 

5 of 27

Practice

 

  1. Always True
  2. Always True
  3. Sometimes True
  4. Always True
  5. Sometimes True
  6. Sometimes True
  7. Sometimes True
  8. Always False

6 of 27

Worksheet problems

1. Prove that f(n) ∈ O(g)

  1. f(n) = 7n, g(n) = n/10
  2. f(n) = 1000, g(n) = 3n3
  3. f(n) = 2n, g(n) = 32n
  4. f(n) = 7n2 + 3n, g(n) = n4
  5. f(n) = n + 2nlog(n), g(n) = nlog(n)

7 of 27

How to Approach these Problems

When trying to prove something like f(n) ∈ O(g) or f(n) ∈ Ω(g), you need to find a c and n0.

  • The proof, or final solution, for the problem should simply declare the values of c and n0 and should plug them in/explain why they make the inequality true.
  • The proof should not explain how to solve for c and n0- that would be your own work.

8 of 27

 

 

 

9 of 27

1a) Proof - Final Solution

10 of 27

 

 

11 of 27

1b) Proof - Final Solution

12 of 27

13 of 27

1c) Proof - Final Solution

14 of 27

 

 

15 of 27

1d) Proof - Final Solution

16 of 27

 

 

17 of 27

1e) Proof - Final Solution

18 of 27

Worksheet problems

2. We provide functions f(n) and g(n). Prove that f(n) Θ(g)

  1. f(n) = 7n, g(n) = n/10�
  2. f(n) = n3 + 10n, g(n) = 3n3

19 of 27

How to Approach these Problems

When trying to prove a function f(n) ∈ Θ(g), you should show that f(n) ∈ O(g) and f(n) ∈ Ω(g).

  • The proof, or final solution, for the problem consists of both a big-O and big-Omega proof
  • Each sub-proof should simply declare values of c and n0 and plug them in/explain why they make the inequality true.
  • The proof should not explain how to solve for c and n0- that would be your own work.

20 of 27

 

 

21 of 27

2a) Proof - Final Solution

22 of 27

 

23 of 27

2b) Proof - Final Solution Part 1

 

24 of 27

2b) Proof - Final Solution Part 2

25 of 27

Worksheet problems: Q3

Get the Θ(·) bound of each function below.

  1. f(n) = worst case running time
  2. g(n) = best case running time

We will construct equations for each function and then simplify them to get a closed form.

26 of 27

3a) f(n) = worst case running time

First function (lines 3-5) always runs once.

Worst case for lines 7-16 is if every value in array is unique. This means for every iteration of the outer loop, the inner loop will iterate through the rest of the array. Total number of iterations is n + (n-1) + (n-2) + … + 1.

There is a formula for this sum: n * (n+1) / 2

f(n) = n + n(n+1)/2 => n2. This is quadratic running time

Do something similar to Q2 proofs to prove that n + n(n+1)/2 ∈ Θ(n2).

27 of 27

3b) g(n) = best case running time

First function (lines 3-5) always runs once.

Best case for lines 7-16 is if every value in array is the same. This means the inner loop will only run once: for the first iteration of the outer loop. Then, it will not run because every index will be visited after the first time.

g(n) = n + n => n

This is linear running time

Do something similar to Q2 proofs to prove that n + n ∈ Θ(n).