Question: 1 . Please check and fix error below: Output: The original array: [ ] The original list: The list is empty. The sorted list: The
Please check and fix error below:
Output:
The original array: The original list: The list is empty. The sorted list: The list is empty. The original array: The original list: The sorted list: The original array: The original list: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index out of bounds for length at ListOnArraydGigiYimMingHay.quicksortMainjava: at ListOnArraydGigiYimMingHay.quicksortMainjava: at ListOnArraydGigiYimMingHay.quicksortMainjava: at ListOnArraydGigiYimMingHay.mainMainjava:
Note:
Here's the code. other classes don't need to be heavily changed as that is the default setting
The tasks that I wrote were the quicksort and partitions. Check this part mainly.
import java.util.Arrays;
import java.security.SecureRandom;
Simulating a linked list with an array.
public class ListOnArraydGigiYimMingHay
private int data;
int size;
public ListOnArraydGigiYimMingHayint n
size n ;
data new intsize;
data; Head index
for int i ; i size ; i
datai i ; Next pointers
datasize ; End of list
datasize ; Tail index
public boolean isEmpty
return data;
public boolean isFull
return datasize ;
public void err
System.out.printlnOops;
public void insertFirstint x
if isFull err; return;
int i datasize ;
datasize datai ;
datai data;
data i;
datai x;
public void quicksort
if isEmpty
quicksort datasize ;
private void quicksortint prevIndex, int headIndex
if headIndex dataheadIndex return;
int pivotValue dataheadIndex;
int leftTail prevIndex;
int current dataheadIndex ;
int last headIndex;
while current
if datacurrent pivotValue
int next datacurrent ;
datacurrent dataleftTail ;
dataleftTail current;
leftTail current;
current next;
else
last current;
current datacurrent ;
datalast ; Properly terminate the list for the last segment
quicksortprevIndex dataprevIndex ;
quicksortheadIndex dataheadIndex ;
public String toString
if isEmpty return "The list is empty.";
StringBuilder sb new StringBuilder;
int i data;
sbappenddatai;
while datai
i datai;
sbappendappenddatai;
return sbappendtoString;
public static void mainString args
int testData
;
for int a : testData
int n alength;
SecureRandom random new SecureRandom;
ListOnArraydGigiYimMingHay list new ListOnArraydGigiYimMingHayn random.nextIntn ;
System.out.printlnThe original array: Arrays.toStringa;
for int i n ; i ; i list.insertFirstai;
System.out.printlnThe original list: list;
list.quicksort;
System.out.printlnThe sorted list: list;
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
