Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Data Structure in C++ Using namespace std; In a bitonic mergesort, we use the same arrangement, except that the second sequence is sorted in descending

Data Structure in C++

Using namespace std;

In a bitonic mergesort, we use the same arrangement, except that the second sequence is sorted in descending order: the first half goes up, and then the second half goes down. This means that when we are doing a merge, sometimes we want to merge the results into ascending order, while other times we want to merge into descending order (depending on which half of the final array the result will end up in). So we add another parameter, to describe the direction the output should be sorted into:

/*

* mergesort.cpp

* Implementation of a bitonic mergesort

*/

/* merge(input, size, output, asc)

Merge the two halves of the array input (which has size elements) into output.

If asc is true, then the output array should be in ascending order;

otherwise it should be descending.

*/

void merge(int* input, int size, int* output, bool output_asc) {

// Your merge implementation goes here }

/* mergesort(input, size, output, asc)

Mergesort the input array (with size elements) into the output array.

If asc is true, the output array should be sorted ascending, otherwise it should be descending.

*/

void mergesort(int *input, int size, int* output, bool output_asc) {

// Your mergesort implementation goes here

}

/* mergesort(input, size)

Sorts size elements in the array pointed to by input, using the MergeSort algorithm.

Output is returned as a newly allocated array, which the caller is responsible for freeing.

*/

int* mergesort(int* input, int size) {

int* output = new int[size];

mergesort(input, size, output, true);

return output;

}

merge must run in O(n) time with n= size. mergesort (both versions) must run in O(nlogn) time, and must use O(n) space. If you allocate any space other than the output array, you should free it before your function returns

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

More Books

Students also viewed these Databases questions

Question

=+and non-compete agreements in three to five different countries.

Answered: 1 week ago