Complexity theory is the theory of determining the necessary resources
for the solution of algorithmic problems and, therefore, the limits what
is possible with the available resources. The results prevent the search
for non-existing efficient algorithms. The theory of NP-completeness has
influenced the development of all areas of computer science. New
branches of complexity theory react to all new algorithmic concepts.
This textbook considers randomization as a key concept. The chosen
subjects have implications to concrete applications. The significance of
complexity theory for today's computer science is stressed.