This is a novel implementation of an in-place merge. Due to scratch language limits, the maximum number of data values that can be visualized is 300. Anything over that will still sort and output a sorting time, but you would only see the first 300 actually being sorted. Controls: Spacebar - Begin sort m - measure how sorted the list currently is (Finds the correlation coefficient of the list) s - shuffles the list (do not shuffle while list is being sorted).
This is essentially a Merge Sort but with the sublists stored in a alternating structure. To my current understanding, this particular method has not shown up anywhere else. This is a stable sort. The function performs a sort of every other value in the parent list and every other value in the parent offset by one. This allows for an efficient implementation of a selection or gnome sort to merge the two lists together (this implementation uses a comb sort). UPDATE 10/31/17 - Now uses a shell sort instead of a gnome sort for merging.