Author: Josh Hug and Kartik Kapur
Recommended Problems
C level
- Prove that if some operation takes O(N) time for the first N iterations and $O(N^{2})$ time for the $N+1$st operation, the amortized runtime is O(N). Remember that you can think of amortized runtime as the average runtime.
B level
-
Problem 1 of my Spring 2013 midterm.
-
Is it possible to have an Ω bound and O bound that are different for the best case?
-
Find the tightest possible bounds for the following function using Ω bound and O where best is initially set to N.
public void caGreeno(int bet, int N){ double somenum = Math.random() //returns a double from 0 to 1 double newnum; if(somnum < .5){ newnum = Math.random(); if(newnum < .5){ caGreeno(bet/2, N); caGreeno(bet/2, N); } else{ caGreeno(bet * 2/bet , N); } } else{ newnum = Math.random(); if(newnum < .5){ caGreeno(bet - 50 , N); caGreeno(bet - 100, N); } else{ caGreeno(bet - 1, N); } } }
A level
-
Find the minimum ai such that the potential is never negative for this example from class.
- Suppose the optimal (and possibly unknown) solution to problem P has order of
growth F(N). Suppose that the best known solution has runtime that is
Θ(B(N)). Finally, suppose that there is a clever proof that no solution can
possibly have order of growth that is less than L(N). Which of the following
can you surmise?
- F(N) = O(B(N))
- B(N) = O(F(N))
- The limit of $\frac{F(N)}{B(N)}$ as N goes to infinity cannot be infinity.
- F(N) = Ω(L(N))
- L(N) = Ω(F(N))
- B(N) > F(N) for sufficiently large N.
-
Find the runtime of the following function
public void tree(int N){ for(int i = 0; i < N; i++){ System.out.println("Oi I'm a tree and I can't get up"); } tree(Math.sqrt(N)); }
A+ level
- We say that fibonnaci is O($2^n$). However, as we learned in this lecture, O is a bit of a blanket statement. There is in fact a tighter bound for fibonnaci called the golden ratio. Prove that the standard fibonnaci function runs in $O(1.618034^n)$