This document discusses the running time of algorithms. It states that an efficient algorithm has a polynomial running time, meaning that when the input size doubles the algorithm slows down by a constant factor. It also notes that most basic operations take constant time and that the worst case running time is described using Big O notation while the best case is described using Big Omega notation. Big-Theta notation describes algorithms whose running time is bounded both above and below by a polynomial.