Complexity theory is a type of Computer science. It looks at how hard a problem is to do for a computer, and how good particular solutions (algorithms) to that problem are. Different algorithms that solve a problem may be better or worse in multiple ways. An algorithm may be faster than some other algorithm, but it may need more resources, like memory.