So, I wrote a program for quicksort and when I input a large array size it gives me a StackOverflowError for quickSort_typeA, however, works completely fine for small size like 10000. Below is my code.
public static int partition_a(int[] a, int left, int right)
{
int pivot = a[left];
while(left<=right) {
while(a[left] < pivot)
left++;
while(a[right] > pivot)
right--;
if(left<=right) {
int tmp = a[left];
a[left] = a[right];
a[right] = tmp;
left++;
right--;
}
}
return left;
}
public static void quickSort_typeA(int[] a, int i, int j) {
int idx = partition_a(a, i, j);
if(i < idx-1) {
quickSort_typeA(a, i, idx-1);
}
if(j > idx) {
quickSort_typeA(a, idx, j);
}
}