Complexity is the rate at which the needed storage or consumed time rise as a function of the problem size. The absolute growth based on the machine utilized to execute the program, the compiler utilized to construct the program, and several other factors. We would like to have a way of defining the inherent complexity of a program (or piece of a program), independent of machine/compiler considerations. It means that we have to not attempt to describe the absolute time or storage needed. We have to instead concentrate on a "proportionality" approach, expressing the complexity in terms of its relationship to some known function. This kind of analysis is known as asymptotic analysis. It might be noted that we are dealing with complexity of an algorithm not that of a problem. For instance, the simple problem could have high order of time complexity & vice-versa.