Input array:
3 2 1 

Splitter maintains an array section of smaller numbers
to the left, in blue, and a section of large numbers
to the right, in green. Unprocessed numbers in the middle are in red.

Enter split: bottom = 0, top= 3, split value= 3
3 2 1 
3 2 1 
Exit split: split at= 3

Enter split: bottom = 0, top= 2, split value= 1
1 2 
1 2 
Exit split: split at= 1
Output array:
1 2 3