Efficiency of an algorithm refers to the amount of the computer resources required to perform its functions. Minimizing the use of various resources such as the CPU and computer’s memory is very important.
Correctness of an algorithm refers to the extent to which the algorithm satisfies its specification, is free from faults, and fulfils all objectives set during the design and implementation phase.
Reliability refers to the capability of the algorithm to maintain a predefined level of performance and perform all required functions under stated conditions, having a long mean time between failures.
Flexibility of an algorithm refers to the effort required to modify the algorithm for other purposes than those for which it was initially developed.