In this paper, we apply different software complexity measures to a set of shortest-path algorithms. Our intention is to study what kind of new information about the algorithms the complexity measures (lines-of-code, Halstead's volume, and cyclomatic number) are able to give, to study which software complexity measures are the most useful ones in algorithm comparison, and to analyze when the software complexity comparisons are appropriate. The experiment indicates that the software complexity measures give a new dimension to empirical algorithm comparison. The results explicitly show the trade-off between speed and implementation complexity: a faster algorithm typically requires a more complex implementation. Different complexity measures correlate strongly. Therefore, even the simple lines-of-code measure gives useful results. As the software complexity measures are easy to calculate and since they give useful information, the study suggests that such measures should be included in empirical algorithm comparisons. Unfortunately, for meaningful results, all the algorithms have to be developed in the same fashion which makes the comparison of independent implementations difficult. For practical use an algorithm has to be fast and accurate as well as easy to implement, test, and maintain. In this work, we investigate whether software complexity measures could make the implementation aspects more explicit and allow algorithm comparisons also in this dimension. We calculate lines-of-code, Halstead's volume, and cyclomatic number measures for different shortest-path algorithms. We investigate if such measures are applicable to algorithm comparison and study what can be learned from algorithms when they are also compared in implementation dimension. The main purpose of the work is to understand if it is possible to explicitly measure the implementation complexity of an algorithm. Having such measures available would help the practitioner to choose the algorithm that best matches the need. The optimal algorithm for a given task would have adequate performance with minimal implementation complexity. For algorithm research implementation, complexity measures would offer a new analysis dimension and make easy implementation a parallel goal with algorithm performance. © 2002 Elsevier Science Ltd. All rights reserved.
- Algorithm implementation
- Shortest-path algorithms
- Software complexity measures
Nurminen, J. K. (2003). Using software complexity measures to analyze algorithms: An experiment with the shortest-paths algorithms. Computers and Operations Research, 30(8), 1121-1134. https://doi.org/10.1016/S0305-0548(02)00060-6