Mergesort in progress.
Sorting Demo is a powerful tool for demonstrating how sorting algorithms work. It was designed to alleviate some of the difficulty instructors often have in conveying these concepts to students due to lack of blackboard space and having to constantly erase. This program started out as a quicksort demonstration applet, and after proposing the idea to Seton Hall's math and computer science department, I was given permission to expand the idea to encompass many of the sorts commonly taught in a data structures/algorithms class. There are currently 8 algorithms featured, all of which allow you to either type in your own array or make the computer generate a random array of a milestone size. Although graphics limit the input array to a length of 25 elements, there is the option to run the algorithm without graphics in order to get an understanding of its running time in comparison with the other sorts.

Naturally, I consulted a number of sources for information on the implementation of these algorithms. They are as follows:

Cormen, Thomas H., Charles E. Leiserson, and Ronald L. Rivest. Introduction to Algorithms. Cambridge:
     The MIT Press, 1990.

Kitchen, Andrew. OETransSortAlgorithm.java.
     http://www.cs.rit.edu/~atk/Java/Sorting/OETransSortAlgorithm.java: 1995.

Kitchen, Andrew. ShearSortAlgorithm.java.
     http://www.cs.rit.edu/~atk/Java/Sorting/ShearSortAlgorithm.java: 1995.

Sedgewick, Robert. Algorithms. Reading, MA: Addison-Wesley Publishing Company, 1983.
Snoeyink, Jack. ExtraStorageMergeSortAlgorithm.java.
     http://www.cs.ubc.ca/spider/harrison/Java/ExtraStorageMergeSortAlgorithm.java: 1995.

Wirth, Niklaus. Algorithms + Data Structures = Programs. Englewood Cliffs: Prentice Hall, Inc., 1976.


Set resolution to 800x600 except for Shearsort, which requires 1024x768.
Applet size: ~144KB, please be patient during download.