Lab-Shellsort Part #1: Shells nt using Donald Shell\'s Suggested 8-4-2-1 Sequenc
ID: 3705546 • Letter: L
Question
Lab-Shellsort Part #1: Shells nt using Donald Shell's Suggested 8-4-2-1 Sequence Modify the shellsortdemo.java program to generate the sorting sequence found on p 276 of the text. The initial array is [1, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15, 8, 16 You will need to modify the code to generate an increment sequence of 8-4-2-1 Output should look something like this before: [1, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15, 8, 16] after [8] -sort: [1, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15, 8, 16] after [4]-sort: [1, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15, 8, 16] after [2]-sort: [1, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15, 8, 16] after [1]-sort: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] Part #2: Shellsort using an Alternate 7.5.3.1 Sequence Modify the shellsortdemo.java program to generate an increment sequence of 7-5-3-1. Use the same initial array 1, 9, 2,10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15, 8, 16 Output should look something like this before: [1, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15, 8, 16] after [7]-sort: [1, 5, 2, 6, 3, 7, 4, 8, 9, 13, 10, 14, 11, 15, 12, 16 after [5] -sort: [1, 4, 2, 6, 3, 7, 5, 8, 9, 12, 10, 14, 11, 15, 13, 16] after [3] -sort: [1, 3, 2, 5, 4, 7, 6, 8, 9, 11, 10, 13, 12, 15, 14, 16] after []-sort: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]Explanation / Answer
Code for Part-1
public class ShellSort
{
static void printArray(int arr[])
{
int n = arr.length;
for (int i=0; i<n; ++i)
System.out.print(arr[i] + " ");
System.out.println();
}
int sort(int arr[])
{
int n = arr.length;
for (int gap = n/2; gap > 0; gap /= 2)
{
for (int i = gap; i < n; i += 1)
{
int temp = arr[i];
int j;
for (j = i; j >= gap && arr[j - gap] > temp; j -= gap)
arr[j] = arr[j - gap];
arr[j] = temp;
}
System.out.print("After ["+gap+"] sort:"); printArray(arr);
}
return 0;
}
// Driver method
public static void main(String args[])
{
int arr[] = {1,9,2,10,3,11,4,12,5,13,6,14,7,15,8,16};
ShellSort ob = new ShellSort();
ob.sort(arr);
}
}
Code for part-2
public class ShellSort
{
static void printArray(int arr[])
{
int n = arr.length;
for (int i=0; i<n; ++i)
System.out.print(arr[i] + " ");
System.out.println();
}
int sort(int arr[])
{
int n = arr.length;
for (int gap = n/2-1; gap > 0; gap -= 2)
{
for (int i = gap; i < n; i += 1)
{
int temp = arr[i];
int j;
for (j = i; j >= gap && arr[j - gap] > temp; j -= gap)
arr[j] = arr[j - gap];
arr[j] = temp;
}
System.out.print("After ["+gap+"] sort:"); printArray(arr);
}
return 0;
}
// Driver method
public static void main(String args[])
{
int arr[] = {1,9,2,10,3,11,4,12,5,13,6,14,7,15,8,16};
ShellSort ob = new ShellSort();
ob.sort(arr);
}
}
Do give a thumbs up.
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.