Description: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 todays computer science is stressed.