Implement a parallel version of the recursive MergeSort (from Task 1), where the two recursive calls are performed in parallel.
Use the recipe of the ForkJoinPool from Lecture 11.
Include a parallel-cut-off parameter: if the recursive call happens on an input smaller than that parameter, recurse serially.
Make the implementation return the overall number of comparisons by this being the return value of your recursive function.
One correctness / consistency check for this task is to compare the number of total comparisons to the sequential version.
Implement a parallel version of the recursive MergeSort (from Task 1), where the two recursive calls are performed in parallel. Use the recipe of the ForkJoinPool from Lecture 11. Include a parallel-cut-off parameter: if the recursive call happens on an input smaller than that parameter, recurse serially. Make the implementation return the overall number of comparisons by this being the return value of your recursive function. One correctness / consistency check for this task is to compare the number of total comparisons to the sequential version.