Question
3. (U & G-required) [40 points] (U-required) The Mergesort algorithm we discussed in class is a recursive, divide-and-conquer algorithm in which the order of merges
3. (U & G-required) [40 points] (U-required) The Mergesort algorithm we discussed in class is a recursive, divide-and-conquer algorithm in which the order of merges is determined by its recursive structure. However, the subarrays are processed independently and merges can be done in different sequences. Implement in C/C++ a non-recursive version of Mergesort, which performs a sequence of passes over the entire array doing m-by-m merges, doubling m at each pass. (Note that the final merge will be an m-by-x merge, if the size of the array is not a multiple of m. Show how your algorithm sorts the sequence ASORTINGEXAMPLE. At the end of each merge step print the values in the resulting subarray.
For example, if sorting [3, 2, 5, 1]:
At first pass (1-by-1 merges): 3 and 2 are merged [2, 3]
5 and 1 are merged [1, 5]
At next pass (2-by-2 merges): [2, 3] and [1, 5] are merged [1, 2, 3, 5]
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started