Department of Computer Science
CompSci 220 (2013 S2C) Assignment 1: Algorithm Analysis Due: 2013-08-08
Give full details of your argument.
Questions
1. (30 marks)
Suppose that you have to choose between three algorithms A1,A2 and A3 for a given problem. The worst-case
running time for each algorithm is given by
W1(n) = 100n; W2(n) = 2n log10 n; W3(n) = 0.1n
2.
Answer the following questions, explaining your assumptions and possible limitations of your analysis.
(a) Order the algorithms from fastest to slowest in the sense of asymptotic worst-case running time.
(b) Suppose that we run each algorithm on a large problem instance of size n. Then we feed in an input of
size 100n and re-run the algorithms on the new input. What would you expect to happen to the running
times, and why?
(c) Suppose that hardware limitations mean that your algorithm can only accept input of size at most 106.
Which algorithm would you prefer, and why? Answer the same question with 106 replaced by 103.
(d) For which problem sizes is A1 the best algorithm to use? Answer the same question for A2 and then for
A3.
(e) Suppose that we have 109 time units available. What is the maximum input size that can be processed by
each of the algorithms in that time?
2. (20 marks)
Formally show that 0.1n + 10
√
n is not O(
√
n) using the definition of O only.
3. (25 marks)
Consider the obvious algorithm for checking whether a list of integers is sorted: start at the beginning of the
list, and scan along until we first find a successive pair of elements that is out of order. In that case, return
false. If no such pair is found by the time we reach the end of the list, return true.
Our elementary operation is a comparison between two integers.
(a) What is the worst case running time of this algorithm on an input list containing n elements? Write all
5-element input lists which contain the numbers 1, 2, 3, 4, 5 and yield the worst case.
(b) What is the best case running time of this algorithm on an input list with n elements? How many input
lists are there which have size n, all elements being different, and yield the best case?
(c) Suppose that the input list is a random permutation of 1, 2, . . . , n and all such permutations are equally
likely. Derive the average-case expected running time. Give both an exact and asymptotic answer.
4. (25 marks)
A certain algorithm has running time T (n) on input of size n given by
T (n) = nblg nc + 2n− 2blg nc+1.
(a) Prove that T (n) is Θ(n log n).
(b) Prove that T (n) −n lg n is O(n).
(c) Explain why the limit rule could not be used for (b).
Hint: Let L(n) := lg n −blg nc and think about the properties of the function L. For example, how large can
it be, and what values does it take when n = 1, 2, . . . ?
CompSci 220 (2013 S2C) Assignment 1: Algorithm Analysis Page 1 of 2
Submission
You should submit, via the automarker at www.cs.auckland.ac.nz/automated-marker, the following.
• A plain text file written containing your answers. No automated feedback will be given. Do the best
you can with mathematical symbols. For exponents, write something like
2^n
if using plain text. Use LaTeX if you really want it to look good. Some WYSISYG word processors
produce output that is probably acceptable for this assignment; some produce very poor output. A
scanned handwritten submission is acceptable if and only if it is neatly written.
Any results from the textbook or lecture notes that you use must be clearly cited and all working should
be shown.
There is a limit of 5 submission attempts for this assignment. The last submission will be the one marked.
CompSci 220 (2013 S2C) Assignment 1: Algorithm Analysis Page 2 of 2