Reference

These reports are generated during the Maven build and site lifecycle.

Generated Reports

Report Description

Javadoc

API reference generated by the Maven Javadoc plugin as part of the Maven site.

JaCoCo

Code coverage report generated during Maven execution.

Surefire

Unit test execution report generated by the Maven Surefire reporting tools.

SonarCloud

Project quality dashboard with issue analysis, code quality information, and coverage metrics.

GitHub repository

Source code repository for the project.

Bibliography

The algorithms implemented by this library follow the descriptions and reference C++ implementations given in Chapter 8, "Sorting and Selection", of Numerical Recipes: The Art of Scientific Computing, 3rd Edition (Cambridge University Press, 2007). The table below maps each class to the section it is based on.

Class Numerical Recipes section Pages

StraightInsertionSorter

8.1 "Straight Insertion and Shell’s Method"

420-421

ShellSorter

8.1.1 "Shell’s Method"

422-423

QuicksortSorter / SystemSorter

8.2 "Quicksort"

423-426

HeapsortSorter

8.3 "Heapsort"

426-428

sortWithIndices (all Sorter implementations)

8.4 "Indexing and Ranking"

428-431

Sorter.select and Sorter.median

8.5 "Selecting the Mth Largest"

431-434

Cited references

Numerical Recipes' own chapter 8 points to these two works for a deeper treatment of sorting and selection, and they are also cited directly in this library’s class-level Javadoc:

  • Knuth, D.E. 1997, Sorting and Searching, 3rd ed., vol. 3 of The Art of Computer Programming (Reading, MA: Addison-Wesley). Section 5.2.1 covers straight insertion and Shell’s method; section 5.2.3 covers Heapsort.

  • Sedgewick, R. 1998, Algorithms in C, 3rd ed. (Reading, MA: Addison-Wesley). Chapter 8 covers straight insertion and Shell’s method; Chapter 11 covers Heapsort.

  • Sedgewick, R. 1978, "Implementing Quicksort Programs", Communications of the ACM, vol. 21, pp. 847-857.

  • Press, W.H., Teukolsky, S.A., Vetterling, W.T., and Flannery, B.P. 2007, Numerical Recipes: The Art of Scientific Computing, 3rd ed. (Cambridge, UK: Cambridge University Press), Chapter 8, "Sorting and Selection", pp. 419-441.