A common person's faith is that a computer can do anything. It is far from truth. In realism computer can carry out only definite predefined instructions. The formal illustration of this model like a sequence of instructions is called as an algorithm, & coded algorithm, within a particular computer language is called as program. Analysis of algorithms has been an area of research into the computer science; evolution of extremely high speed computers has not diluted the requirement for the design of time-efficient algorithms.
In computer science, Complexity theory is a part of theory of computation dealing along with the resources needed during computation to solve out a specified problem. The most common resources are time (how several steps (time) does it take to solve out a problem) and space (how much memory does it take to solve out a problem). It might be noted that complexity theory differs from computability theory that deals with whether a difficulty can be solved or not through algorithms, in spite of the resources needed.
Analysis of Algorithms is field of computer science whose target is to understand the complexity of algorithms. Whereas very large amount of research work is devoted to the worst-case evaluations, the focus within these pages is methods for average-case. One can grasp easily that the focus has shifted through computer to computer programming & after that to creation of an algorithm. It is algorithm design, spirit of problem solving.