By analysis we mean that we are studying existing algos seeing their features applications, performance analysis, performance measurement, studying their complexity and improving them.
In computer science, the analysis of algorithms is the determination of the amount of resources (such as time and storage) necessary to execute them. Most algorithms are designed to work with inputs of arbitrary length. Usually, the efficiency or running time of an algorithm is stated as a function relating the input length to the number of steps (time complexity) or storage locations (space complexity).
Algorithm analysis is an important part of a broader computational complexity theory, which provides theoretical estimates for the resources needed by any algorithm which solves a given computational problem. These estimates provide an insight into reasonable directions of search for efficient algorithms.
A copy of a useful book( Analysis of Algorithms:
An Active Learning Approach) is attached for you to read.
Please, see the attached links too to get more understandings of the subject.
Analysis of algorithms, in my opinion, is investigating their complexity (for example, determining their class : Polynomial, NP-complete, NP-hard), effectiveness (ability to obtain the desired result), efficiency, convergence (in case of iterative approximate methods, for example, optimization algorithms).
Analysis of Algorithms is as simple as the name suggests: Analysis of Algorithms. Proving theorems for algorithms (i.e., time-complexity, space-complexity, etc.), and theorems relating to the problems an algorithm is attempting to solve or approximate. It is a research activity that would fall under a collection of theoretical computer science fields.
In my opinion, analysis of algorithms does (or should at least) incorporate the analysis of the capacity of the investigated or suggested algorithm to succeed in what it has been designed for. This means, for instance, exhibiting the conditions under which the algorithm converges to the solution of the problem at hand in finite time. Stability, convergence, ... have to be analysed and proven whenever possible.
Algorithm analysis frequently concerns itself with domain of application. Thus in comparing algorithms you will be concerned with the following questions.
Is the new algorithm correct?
Does it take less time?
Does it take less space?
Does it work on a wider range of problems?
If a new algorithm ticks the box for one or more of these questions (provided the first question is answered in the affirmative) it is worth further consideration.
I would like to add to the above replies that the analysis should not be restricted to time and space, but to all the resources, such as i/o, communication with other processes, use of OS resources, garbage collection, etc.
Algorithm is steps used to implement solution of given problem: it can be implemented hardware or software i.e. it is a system. Flowcharting and software programms help to study given algorithm and its perfomanse.
In my opinion: Steps means rules used to implement that algorithm: example Direct Fourier transform steps not as fast Fourier transform steps(rules); since both are used for computing same spectrum (difference is number of operations, so they are different algorithms).