- The merge() function does not use an accumulator argument any more and is indeed much simpler now.
- The recursive
mergesort_function now does not use the haskell list
lengthoperator any more. Instead, the length of the list to be sorted is passed down the recursive chain.
Please see the optimised mergesort implementation for details.
These improvements reduced the RAM utilisation and improved the run-time performance by another 20% respectively.
Nothing to scoff at, eh?