Question: Please help me to solve the problem with java language! An implementation of the Merge Sort algorithm. Modify the algorithm so that it splits the

Please help me to solve the problem with java language!

An implementation of the Merge Sort algorithm. Modify the algorithm so that it splits the list into 3 sublists (instead of two). Each sublist should contain about n/3 items. The algorithm should sort each sublist recursively and merge the three sorted sublists. The traditional merge sort algorithm has an average and worst-case performance of O(n log2 n). What is the performance of the 3-way Merge Sort algorithm?

Merge Sort algorithm

import java.util.Arrays;

public class MergeSort

{

public static void main(String[] args)

{

int[] values = new int[15];

for(int i=0; i

values[i] = (int)(90*Math.random())+10;

System.out.println("Unsorted: " + Arrays.toString(values));

sort(values);

System.out.println(" Sorted: " + Arrays.toString(values));

}

public static void sort(int[] data)

{

sort(data, 0, data.length-1);

}

private static void sort(int[] data, int min, int max)

{

if(max>min)

{

int pivot = (min+max)/2;

sort(data, min, pivot);

sort(data, pivot+1, max);

int left = min; //the beginning of the left sublist

int right = pivot+1; //the beginning of the right sublist

int[] merged = new int[max-min+1];

for(int i=0; i

{

if(left<=pivot && (right>max || data[left]

merged[i] = data[left++];

else

merged[i] = data[right++];

}

for(int i=0, j=min; i

data[j] = merged[i];

// System.out.println(" Sorting: " + Arrays.toString(data) + " " + min + "-" + max);

}

}

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!