Question

In: Computer Science

1. Implement a method that meets the following requirements: (a) Do not reuse any code for...

1. Implement a method that meets the following requirements:

(a) Do not reuse any code for the following:

i. Try to write this method with as few lines of code as you can

ii. Sorts a group of three integers, x,y and z, into decreasing order (they do not have to be in a sequence).

iii. Assume the value in x is less than the value in z. You can also assume there are no duplicates among x, y and z (none of them contain the same value)

iv. Prints a message each time the order of two elements are changed.

v. Prints the list before and after sorting

(b) You can reuse Java API code and module code for the following:

i. Calls mergesort to sort the sequence of numbers into increasing order

ii. Prints the list after the second sorting.

(c) Implement a main method that calls the above methods, demonstrating their use with all applicable printed output

Solutions

Expert Solution


import java.util.*;
public class MergeSort
{
   // Function for 3-way merge sort process
   public static void mergeSort(Integer[] z)
   {
       // if array of size is zero returns null
       if (z== null)
           return;

       // creating duplicate of given array
       Integer[] x = new Integer[z.length];

       // copying alements of given array into
       // duplicate array
       for (int i = 0; i < x.length; i++)
           x[i] = z[i];

       // sort function
       mergeSort(x, 0, z.length, z);

       // copy back elements of duplicate array
       // to given array
       for (int i = 0; i < x.length; i++)
           z[i] = x[i];
   }

   /* Performing the merge sort algorithm on the
   given array of values in the rangeof indices
   [low, high). low is minimum index, high is
   maximum index (exclusive) */
   public static void mergeSort(Integer[] z,
               int low, int high, Integer[] y)
   {
       // If array size is 1 then do nothing
       if (high - low < 2)
           return;

       // Splitting array into 3 parts
       int mid1 = low + ((high - low) / 3);
       int mid2 = low + 2 * ((high - low) / 3) + 1;

       // Sorting 3 arrays recursively
       mergeSort(y, low, mid1, z);
       mergeSort(y, mid1, mid2, z);
       mergeSort(y, mid2, high, z);

       // Merging the sorted arrays
       merge(y, low, mid1, mid2, high, z);
   }

   /* Merge the sorted ranges [low, mid1), [mid1,
   mid2) and [mid2, high) mid1 is first midpoint
   index in overall range to merge mid2 is second
   midpoint index in overall range to merge*/
   public static void merge(Integer[] z, int low,
                       int mid1, int mid2, int high,
                               Integer[] y)
   {
       int i = low, j = mid1, k = mid2, l = low;

       // choose smaller of the smallest in the three ranges
       while ((i < mid1) && (j < mid2) && (k < high))
       {
           if (z[i].compareTo(z[j]) < 0)
           {
               if (z[i].compareTo(z[k]) < 0)
                   y[l++] = z[i++];

               else
                   y[l++] = z[k++];
           }
           else
           {
               if (z[j].compareTo(z[k]) < 0)
                   y[l++] = z[j++];
               else
                   y[l++] = z[k++];
           }
       }

       // case where first and second ranges have
       // remaining values
       while ((i < mid1) && (j < mid2))
       {
           if (z[i].compareTo(z[j]) < 0)
               y[l++] = z[i++];
           else
               y[l++] = z[j++];
       }

       // case where second and third ranges have
       // remaining values
       while ((j < mid2) && (k < high))
       {
           if (z[j].compareTo(z[k]) < 0)
               y[l++] = z[j++];

           else
               y[l++] = z[k++];
       }

       // case where first and third ranges have
       // remaining values
       while ((i < mid1) && (k < high))
       {
           if (z[i].compareTo(z[k]) < 0)
               y[l++] = z[i++];
           else
               y[l++] = z[k++];
       }

       // copy remaining values from the first range
       while (i < mid1)
           y[l++] = z[i++];

       // copy remaining values from the second range
       while (j < mid2)
           y[l++] = z[j++];

       // copy remaining values from the third range
       while (k < high)
           y[l++] = z[k++];
   }

   // Driver function
   public static void main(String args[])
   {
       // test case of values
       Integer[] data = new Integer[] {45, -2, -45, 78,
                           30, -42, 10, 19, 73, 93};
      
      
       System.out.println("data before sorting decreasing order ");
       for(int i=0;i<data.length;i++)
       System.out.print(data[i]+ " ");
       mergeSort(data);

       System.out.println("\nAfter merge sort: \n");
       for (int i = 0; i < data.length; i++)
           System.out.print(data[i] + " ");
   }
}
output

sorting before sorting decreasing order
45 -2 -45 78 30 -42 10 19 73 93
After merge sort:

-45 -42 -2 10 19 30 45 73 78 93


Related Solutions

. Implement a method that meets the following requirements: Computer Language:Java (a) Try to write this...
. Implement a method that meets the following requirements: Computer Language:Java (a) Try to write this method with as few lines of code as you can (b) Sorts a group of three integers, x,y and z, into increasing order (they do not have to be in a sequence). (c) Assume the value in x is less than the value in z. You can also assume there are no duplicates among x, y and z (none of them contain the same...
. Implement a method that meets the following requirements: (a) Calls mergesort to sort an array/list...
. Implement a method that meets the following requirements: (a) Calls mergesort to sort an array/list of at least 5 integers (b) Prints the list before and after sorting.
4 Implement a Java program that meets the following requirements • You can use the Java...
4 Implement a Java program that meets the following requirements • You can use the Java standard sequence data structure API types for sets, lists, stack,queue and priority queue as needed. All are available in the java.util package, which you will want to import in your program. 1. Argue in code comments which data structure, stack or queue, you will use to implement this method. Implement a method which creates some String objects as food orders for a small restaurant,...
1. Write a Java program from scratch that meets the following requirements: a. The program is...
1. Write a Java program from scratch that meets the following requirements: a. The program is in a file called Duplicates.java that defines a class called Duplicates (upper/lower case matters) b. The program includes a Java method called noDuplicates that takes an array of integers and returns true if all the integers in that array are distinct (i.e., no duplicates). Otherwise it returns false. Make sure the method is public static. example tests: noDuplicates({}) returns true noDuplicates({-1, 1}) returns true...
Implement the following function by replacing the pass keyword with your code. Do not change the...
Implement the following function by replacing the pass keyword with your code. Do not change the spelling of the function name or the parameter list. def order_pie(): Important notes: Ask ONLY these questions, in EXACTLY this order. Do not ask more questions than are necessary to arrive at the right answer. You can expect the input values to be 'yes' or 'no'. For this assignment you do not have to worry about other spellings or capitalization. The return values must...
Write a C program that meets the following requirements. Uses a while loop to display the...
Write a C program that meets the following requirements. Uses a while loop to display the first 10 natural numbers (on one row, with a tab separating each number) Uses a while loop to find the sum of the second set of 10 natural numbers. Reads a user entry and displays all the natural numbers up to the user entry (on a column list with a new line separating each number). Finds and displays the sum of all natural numbers...
Create shell in C which meets requirements below: 1. The shell must support the following internal commands:
Create shell in C which meets the requirements below:1. The shell must support the following internal commands:i.cd - Change the current default directory toIf the argument is not present, report the current directory. If the directory does not exist an appropriate errorshould be reported. This command should also change thePWD environment variable.ii. clr - Clear the screen.iii. dir - List the contents of directory. iv.environ - List all the environment strings.v. echo - Display on the display followed by a newline...
THIS IS FOR ARDUINO PROGRAMMING Write code that checks the sensor data and meets the following...
THIS IS FOR ARDUINO PROGRAMMING Write code that checks the sensor data and meets the following conditions: For night conditions, turn on white LED 1 For day conditions, turn off white LED 1 Code should check intervals every 5 seconds. NEED THE BELOW CODE TO FIT THE ABOVE REQUIREMENTS. const int lightSensor = 5; //light sensor variable float sensValue = 0; //variable to hold sensor readings const int button = 3; //pin for button reads const int LED1 = 5;...
Using Python, write a program named hw3b.py that meets the following requirements: Welcome the user to...
Using Python, write a program named hw3b.py that meets the following requirements: Welcome the user to Zion's Pizza Restaurant and ask the user how many people are in their dinner group. If the answer is more than eight (8), print a message saying they'll have to wait for a table. Otherwise, report that their table is ready and take their order. Assume the client orders one pizza, and ask what he/she would like on their pizza, include a loop that...
Using Python, write a program that meets the following requirements: Make a list called sandwich_orders and...
Using Python, write a program that meets the following requirements: Make a list called sandwich_orders and fill it with the names of various sandwiches. Make an empty list called finished_sandwiches. Loop through the list of sandwich orders and spring a message for each order such as "I am working on your tuna sandwich" As each sandwich is made, move it to the list of finished sandwiches. After all the sandwiches have been made, print a message listing each sandwich that...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT