A sorting program that includes a graph of adjustable size and a GUI made with a custom button class. 23 different sorting algorithms are available to choose from. There are also four different array value-sets to choose from along with 7 non-sorting algorithms (ex: shuffle). The sorting process is done with individual frames for each array operation. After each sort is complete, runtime statistics are displayed.
Median Heap Sort and B-U Median Heap (Bottom-Up Median Heap Sort) are two sorting algorithms that I invented. It is likely that someone has thought of the idea before me, but I haven't been able to find similar algorithms anywhere online. These algorithms work by splitting a sub-array into two heaps: on the right, a reverse max heap, and on the left, a min heap. On creation, elements are swapped between the two heaps to make the min heap strictly greater than (or equal to) the reverse max heap. After this process is complete, the element(s) in the center is/are the median of the sub array. Now this process can be recursively called on each side of the median.