### Mergesort

These demos are intended to supplement (not replace!) Chapter 8 of Sedgewick's Algorithms book. You can find detailed descriptions, code, and other information about the algorithms in the book.

Each demo is a dynamic representation of the algorithm in action, sorting an array a containing a permutation of the integers 1 through N. For each i, the array element a[i] is depicted as a black dot plotted at position (i, a[i]). Thus, the end result of each sort is a diagonal of black dots going from (1, 1) at the bottom left to (N, N) at the top right. Each time an element is moved, a green dot is left at its old position. Thus the moving black dots give a dynamic representation of the progress of the sort and the green dots give a history of the data-movement cost.

The auxilliary array used in the merging operation is shown to the right of the array a[], going from (N+1, 1) to (2N, 2N).

Mergesort illustrates the operation of the basic algorithm.

Nonrecursive mergesort is a bottom-up version of mergesort.