A top down unification of minimum cost spanning tree algorithms
SIGCOMM '89 Symposium proceedings on Communications architectures & protocols
Network flows: theory, algorithms, and applications
Network flows: theory, algorithms, and applications
An inverted taxonomy of sorting algorithms
Communications of the ACM - Special section on computer architecture
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
STL tutorial and reference guide, second edition: C++ programming with the standard template library
STL tutorial and reference guide, second edition: C++ programming with the standard template library
Structure and Interpretation of Computer Programs
Structure and Interpretation of Computer Programs
Object-oriented algorithm analysis and design with Java
Science of Computer Programming - Special issue on principles and practice of programming in java (PPPJ 2003)
Hi-index | 0.00 |
This paper presents an approach to algorithm analysis that benefits from and exploits the OO characteristics of Java and the organization Java gives to build the inheritance trees of the classes and, finally, the use of interfaces, collections, and iterators. After defining the inheritance structure of a collection of algorithms -- for instance, graph exploration algorithms - and the different levels of abstraction, we design both the verification and measures of complexity for the abstract algorithms. We prove as many properties as possible at the abstract levels assuming the implementations of the methods called upon will be correct. We also derive a complexity measure in terms of the complexity measures of the abstract methods. When a concrete algorithm is derived, we reuse the proofs we already have, plus the measures, and simply complete them by proving that the properties assumed for the concrete methods indeed hold and obtaining the exact complexity for the method. We call this inheritance tree a generic algorithm.