Problem 1:

Allocate 6 for (a) and 4 for (b).  

For (a), full points if they have a Theta(sqrt{n}) answer with a
reasonable explanation.  While they do not have to be rigorous, the
scheme is fairly simple, so they should have a clear explanation.

Deduct at least 2 points if they do not get the sqrt{n} bound, and
instead do some kind of binary search.

For (b), be generous.  Give full points if they have a Theta(n^{1/k})
bound.  Give 2-3 points if they have a reasonable approach that does
not quite give this bound.  They do not have to be rigorous in this
part.

Problem 2:

Deduct 1 point for every wrong pairwise order.

Full points if they either establish the limits or show plots that
clearly show the trends.

If there are no explanations, then they should lose at least 4 points.

Problem 3:

2 points for (a), (b), (c), and each of the two parts of (d).

In each case, 1 point for reasonable attempt, 1 point in case of
mistake or omission.  These were all fairly easy.

Problem 4:

Split this as 3+3+4.

For (a), any binary-tree based solution should fetch full points. It
is conceivable some of the students would have not understood the
notion of depth, in which case deduct 1-2 points.

For (b), 1 pt each for correct expression for r and s, and 1 pt for
the argument.  They may not describe r and s in the same way as the
sample solution but that is ok, as long as they are correct.

For (c), grouping into 3s is key, and you should allocate 2 pts for
that.  2 pts for the argument of O(log (n)).  If they do not group
into 3s -- say they do in 2s -- then you should point out this mistake
and deduct at least 2 pts.  Give remaining points depending on their
analysis of their scheme.
