

Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
The summer 2008 edition of homework 2 for the cmsc 351 course at the university of california, berkeley. The homework covers various topics in algorithms and complexity, including big o notation, big theta notation, and the analysis of insertion sort. Students are asked to solve problems related to the efficiency of different algorithms and the comparison of their complexities.
Typology: Assignments
1 / 2
This page cannot be seen from the preview
Don't miss anything!


Summer 2008 CMSC 351: Homework 2 Clyde Kruskal
Due at the start of class Wednesday, June 11, 2008. There are FOUR problems.
Problem 1. Professor Hilbert invents a program that uses exactly 100n^4 operations to solve the borogove problem of size n. Professor Poincare invents a program that uses 2 n/ 106 operations to solve the same problem.
(a) Assume that you are willing to run Hilbert’s program for some specific amount of time. Assume that your computer speed increases by a factor of 20. How much larger a problem can you solve in the same amount of time? Show your work. (b) Assume that your computer executes one billion operations per second. Approx- imately how large a problem can you solve in a year? Show your work (but not the arithmetic). (c) Assume that you are willing to run Poincare’s program for some specific amount of time. Assume that your computer speed increases by a factor of 20. How much larger a problem can you solve in the same amount of time? Show your work. (d) Assume that your computer still executes one billion operations per second. Ap- proximately how large a problem can you now solve in a year? Show your work (but not the arithmetic). (e) Whose program should you use if you are going to run it for a year? (f) For approximately what values of n is Professor Hilbert’s program faster than Professor Poincare’s? Show your work.
Problem 2. Show the following. In each of (a), (b), and (c) state specific values of the constants (e.g. c 1 , c 2 , n 0 ) you used to satisfy the conditions, and show how you arrived at the values.
(a) 3n^2 + 4n − 5 = O(n^2 − 3 n + 1) (b) 2n^3 − 5 n^2 + 3 = Θ(n^3 ) (c) 2n^2 + 5n(lg n)^3 = O(n^2 ) [Hint: Find n 0 such that (lg n)^3 ≤ n, for all n ≥ n 0 .] (d) n log n = o(n^1.^5 )
Problem 3. For each pair of expressions (A, B) below, indicate whether A is O, o, Ω, ω, or Θ of B. Note that zero, one or more of these relations may hold for a given pair; list all correct ones. A B (a) n^100 2 n (b) (log n)^12
n (c)
n ncos(πn/8) (d) 10 n^100 n (e) nlog^ n^ (log n)n (f ) log (n!) n log n
Problem 4. Consider a version of insertion sort where the algorithm skips an element at each iteration of the insertion phase. So when inserting element i, it compares to element i − 2, then i − 4, then i − 6, etc. When element i is finally greater than element i − 2 k, the algorithm goes back to compare it to element i − 2 k + 1. Assume there is no sentinel. Analyze the worst case number of comparisons for this version of insertion sort. Make your answer as simple and elegant as possible. Show your work.