http://stackoverflow.com/questions/487258/plain-english-explanation-of-big-o/487278#487278