List the resulting array after each call of the merge method. Indicate the number of character-to-character comparisons made for each call to merge (line 20 of the merge method at the end of the assignment). Sort the following array of characters into alphabetical order: C Q S A X B

Systems Architecture
7th Edition
ISBN:9781305080195
Author:Stephen D. Burd
Publisher:Stephen D. Burd
Chapter3: Data Representation
Section: Chapter Questions
Problem 13RQ: How is an array stored in main memory? How is a linked list stored in main memory? What are their...
icon
Related questions
Question

List the resulting array after each call of the merge method. Indicate the number of character-to-character comparisons made for each call to merge (line 20 of the merge method at the end of the assignment). Sort the following array of characters into alphabetical order: C Q S A X B T.

01 public static void mergesort (char[] a, int 1, int r){
02
03
if (1 >= r) {
04
return;
05
}
int middle = (1+r)/2;
mergesort(a, 1, middle);
mergesort(a, middle+1, r);
merge(a, 1, middle, r);
10 }
06
07
08
09
11
12 public static void merge (char[] a, int l, int m, int r){
13
//copy lower half of the array into b
char [] b = new char[m-1+1];
for ( int i = 0; i <= m-l; i++ ) {
b[i] =
}
14
15
16
17
a[1+i];
18
19
= m+1, k = 1;
while ( i <= m-l && j <= r ) {
0, j
20
int i =
21
22
if (a[j] < b[i]) {
23
a [k]
alj);
24
k += 1;
j += 1;
} else {
a [k]
25
26
27
= b[i];
28
k += 1;
29
i += 1;
}
}
30
31
while ( i <= m-l ) {
b[i];
32
33
a [k]
34
k += 1;
35
i += 1;
36
}
while ( j <= r ) {
alj];
37
38
a[k]
39
k += 1;
40
j += 1;
}
41
42 }
Transcribed Image Text:01 public static void mergesort (char[] a, int 1, int r){ 02 03 if (1 >= r) { 04 return; 05 } int middle = (1+r)/2; mergesort(a, 1, middle); mergesort(a, middle+1, r); merge(a, 1, middle, r); 10 } 06 07 08 09 11 12 public static void merge (char[] a, int l, int m, int r){ 13 //copy lower half of the array into b char [] b = new char[m-1+1]; for ( int i = 0; i <= m-l; i++ ) { b[i] = } 14 15 16 17 a[1+i]; 18 19 = m+1, k = 1; while ( i <= m-l && j <= r ) { 0, j 20 int i = 21 22 if (a[j] < b[i]) { 23 a [k] alj); 24 k += 1; j += 1; } else { a [k] 25 26 27 = b[i]; 28 k += 1; 29 i += 1; } } 30 31 while ( i <= m-l ) { b[i]; 32 33 a [k] 34 k += 1; 35 i += 1; 36 } while ( j <= r ) { alj]; 37 38 a[k] 39 k += 1; 40 j += 1; } 41 42 }
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps with 5 images

Blurred answer
Knowledge Booster
Binary Search Algorithm
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Systems Architecture
Systems Architecture
Computer Science
ISBN:
9781305080195
Author:
Stephen D. Burd
Publisher:
Cengage Learning