Hi,
I am get ArrayIndexofBound Error while running the below quick sort. I would appreciate your help
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int arr[] = new int[n];
for(int i=0; i<n;i++) {
arr[i] = sc.nextInt();
}
sort(arr, 0, n-1);
for (int i=0; i<n; ++i)
System.out.print(arr[i]+" ");
}
static void sort(int arr[], int l,int h ) {
if(l<h) {
int pi = partition(arr,l,h);
sort(arr, l, pi-1);
sort(arr, pi+1, h);
}
}
static int partition(int[] arr, int l, int h ) {
int pivot = arr[h];
int i = l-1;
for(int j =0 ; j< h; j++) {
if(arr[j]<=pivot) {
i++;
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
} //Swap Pivot
int temp = arr[i+1];
arr[i+1] = arr[h];
arr[h] = temp;
return i+1;
}
}