a) Convert the following merge sort code so that it sorts from greatest to least instead of least to gi this is a very small change. b) Explain why the change you made causes the search to switch from the original sort ordering(le greatest) to the new one (greatest to least). * Merge sort takes in an array and returns the same array, sorted. */ public void mergeSort(int[] arr) { int[] temp = new int[arr.length]; mergeSortHelper(arr, 0, arr.length - 1, temp); } private void mergeSortHelper(int[] arr, int from, int to, int[] temp) { // If the array length is greater than 1 if(to - from >= 1) { int mid = (from + to) / 2; mergeSortHelper(arr, from, mid, temp); mergeSortHelper(arr, mid + 1, to, temp); merge(arr, from, mid, to, temp); System.out.printlIn(Arrays.toString(arr)); } } private void merge(int[] arr, int from, int mid, int to, int[] temp) { int i = from; int j = mid + 1; I/ track right array position int k = from; while(i <= mid &&j <= to) { // If the element in the left subarray is less // than the element in the right subarray it // is next in the merged list if(arr[i) < arrlj]) { temp[k] = arr[i]; i++; } else { // track left array position / track temp position

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

q15

temp[k] = arr[j];
j++;
k++;
}
// We may have missed elements from either list
while(i <= mid) {
temp[k] = arr[i];
i++;
k++;
}
while(j <= to) {
temp[k] = arr[j];
j++;
k++;
}
I/ Copy over from temp to elements
for(k = from; k <= to; k++) {
arr[k] = temp[k];|
}
}
Transcribed Image Text:temp[k] = arr[j]; j++; k++; } // We may have missed elements from either list while(i <= mid) { temp[k] = arr[i]; i++; k++; } while(j <= to) { temp[k] = arr[j]; j++; k++; } I/ Copy over from temp to elements for(k = from; k <= to; k++) { arr[k] = temp[k];| } }
a) Convert the following merge sort code so that it sorts from greatest to least instead of least to gr
this is a very small change.
b) Explain why the change you made causes the search to switch from the original sort ordering(le
greatest) to the new one (greatest to least).
/*
* Merge sort takes in an array and returns the same array, sorted.
*/
public void mergeSort(int[] arr) {
int] temp = new int[arr.length];
mergeSortHelper(arr, 0, arr.length - 1, temp);
}
private void mergeSortHelper(int[] arr, int from, int to, int temp) {
// If the array length is greater than 1
if(to - from >= 1) {
int mid = (from + to) / 2;
mergeSortHelper(arr, from, mid, temp);
mergeSortHelper(arr, mid + 1, to, temp);
merge(arr, from, mid, to, temp);
System.out.println(Arrays.toString(arr);
}
}
private void merge(int[] arr, int from, int mid, int to, int[] temp) {
int i = from;
int j = mid + 1; I/ track right array position
int k = from;
while(i <= mid &&j <= to) {
// If the element in the left subarray is less
Il than the element in the right subarray it
Il is next in the merged list
if(arr[i] < arrfi]) {
temp[k] = arr[i];
i++;
}
else {
Il track left array position
// track temp position
Transcribed Image Text:a) Convert the following merge sort code so that it sorts from greatest to least instead of least to gr this is a very small change. b) Explain why the change you made causes the search to switch from the original sort ordering(le greatest) to the new one (greatest to least). /* * Merge sort takes in an array and returns the same array, sorted. */ public void mergeSort(int[] arr) { int] temp = new int[arr.length]; mergeSortHelper(arr, 0, arr.length - 1, temp); } private void mergeSortHelper(int[] arr, int from, int to, int temp) { // If the array length is greater than 1 if(to - from >= 1) { int mid = (from + to) / 2; mergeSortHelper(arr, from, mid, temp); mergeSortHelper(arr, mid + 1, to, temp); merge(arr, from, mid, to, temp); System.out.println(Arrays.toString(arr); } } private void merge(int[] arr, int from, int mid, int to, int[] temp) { int i = from; int j = mid + 1; I/ track right array position int k = from; while(i <= mid &&j <= to) { // If the element in the left subarray is less Il than the element in the right subarray it Il is next in the merged list if(arr[i] < arrfi]) { temp[k] = arr[i]; i++; } else { Il track left array position // track temp position
Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY