Здравствуйте Господа! Возникли сложности при реализации алгоритма быстрой сортировки таким образом, чтобы опорным элементом в процедуре Partition всегда выбирался последний элемент текущего массива. Алгоритм и мой код приведен ниже
public static int[] quickSort(int arr[], int p, int r){
if(p < 2){
int q = partition(arr, p, r);
quickSort(arr, p, q-1);
quickSort(arr, q+1, r);
}
return arr;
}
private static int partition(int[] arr, int p, int r) {
int x = arr[r];
int i = p-1;
for (int j = p; j < r; j++){
if(arr[j] < x){
count++;
i++;
int temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
System.out.println(count);
System.out.println(Arrays.toString(arr));
}
int t = arr[r];
arr[r] = arr[i+1];
arr[i+1] = t;
return i+1;
}
Подозреваю что ошибка кроется в строке
int x = arr[r];
Помогите, пожалуйста, разобраться где же кроется подвох.