Połącz algorytm wyboru QuickSort i Median

Chcę zmodyfikować QuickSort (w Javie), tak aby za każdym razem wywoływana była Partycja, mediana proporcjonalnej tablicy była używana jako przestawna.

Mam w języku Java algorytm selekcji mediany, który zwraca k-ty najmniejszy element, w tym przypadku medianę. Mam mnóstwo algorytmów quicksort w java, które działają same i sortują tablicę. Niestety nie mogę połączyć tych dwóch w celu osiągnięcia powyższego ... Za każdym razem, gdy próbuję, zazwyczaj otrzymuję erozję stackoverflow.

Czy ktoś może mi pokazać kod, aby zobaczyć, jak można to zrobić?

Dzięki

EDYCJA: Na przykład jest to mediana algorytmu wyboru, którego próbowałem użyć.

public int quickSelect(int[] A, int p, int r, int k) {
    if (p==r) return A[p];
    int q = Partition(A,p,r);
    int len = q-p+1;

    if (k == len) return A[q];
    else if (k<len) return Select(A,p,q-1,k);
    else return Select(A,q+1,r,k-len);
}

public int partition(int[]A, int p, int r) {
    int x = A[r];
    int i = p-1;
    for (int j = p; j<=r-1; j++) {
        if (A[j] <= x) {
            i++;
            swap(A,i,j);
        }
    }
    swap(A,i+1,r);
    return i+1;
}

Działa samodzielnie, ale kiedy próbuję wywołać quickSelect za pomocą funkcji partycji quicksort, aby zwrócić pivot, który ma zostać użyty, nie działa. Oczywiście robię coś złego, ale nie wiem co. Niestety w Internecie nie znalazłem żadnego algorytmu, nawet w pseudokodzie, który łączyłby medianę z quicksortem.

questionAnswers(4)

yourAnswerToTheQuestion