Algorithm analysis is a field of computer science that is dedicated to understanding the complexity of algorithms. Algorithms are generally defined as processes that perform a series of operations to an end. Algorithms can be expressed in many ways, in flow charts, a natural language, and computer programming languages. Algorithms are used in mathematics, computing and linguistics, but a most common use is in computers to do calculations or process data. Algorithm analysis deals with algorithms written in computer programming languages, which are based on mathematical formalism
An algorithm is essentially a set of instructions for a computer to perform a calculation in a certain way. For example, a computer would use an algorithm to calculate an employee’s paycheck. In order for the computer to perform the calculations, it needs appropriate data put into the system, such as the employee’s wage rate and number of hours worked.
More than one algorithm might work to perform the same operation, but some algorithms use more memory and take longer to perform than others. Also, how do we know how well algorithms work in general, given differences between computers and data inputs? This is where algorithm analysis comes in.
One way to test an algorithm is to run a computer program and see how well it works. The problem with this approach is that it only tells us how well the algorithm works with a particular computer and set of inputs. The purpose of algorithm analysis is to test and then draw conclusions about how well a particular algorithm works in general. This would be very difficult and time consuming to do on individual computers, so researchers devise models of computer functioning to test algorithms.
In general, algorithm analysis is most concerned with finding out how much time a program takes to run, and how much memory storage space it needs to execute the program. In particular, computer scientists use algorithm analysis to determine how the data imputed into a program affects its total running time, how much memory space the computer needs for program data, how much space the program’s code takes in the computer, whether an algorithm produces correct calculations, how complex a program is, and how well it deals with unexpected results.