As a programmer, you often have a choice of data structures and algorithms. You will sometimes seek a tradeoff between space and time complexity. For example, you might choose a data structure that requires a lot of storage in order to reduce the computation time. There is an element of art in making such tradeoffs, but you must make the choice from an informed point of view. You must have some verifiable basis on which to make the selection of a data structure or algorithm.
Complexity analysis provides one such basis.
The absolute growth depends on the machine used to execute the program, the compiler used to construct the program, and many other factors. This means that we must not try to describe the absolute time or storage needed. This type of analysis is known as asymptotic analysis . Asymptotic Analysis Asymptotic analysis is based on the idea that as the problem size grows, the complexity will eventually settle down to a simple proportionality to some known function. These notations are useful for expressing the complexity of an algorithm without getting lost in unnecessary detail.