  The field of computational complexity is concerned both with the intrinsic
hardness of computational problems and with the efficiency of algorithms to
solve them. Given such a problem, normally one designs an algorithm to solve it
and sets about establishing bounds on its performance as functions of the
algorithm's variables, particularly upper bounds expressed via the big-oh
notation. But if we were given some inscrutable code and were asked to figure
out its big-oh profile from performance data on a given set of inputs, how hard
would we have to grapple with the various possibilities before zooming in on a
reasonably small set of candidates? Here we show that, even if we restricted
our search to upper bounds given by polynomials, the number of possibilities
could be arbitrarily large for two or more variables. This is unexpected, given
the available body of examples on algorithmic efficiency, and serves to
illustrate the many facets of the big-oh notation, as well as its
counter-intuitive twists.
