private static int getNthValue(Integer[] a, int startIndex, int endIndex, int n) {
        int pivotValueIndex = startIndex + (endIndex - startIndex) / 2;
        int resultPivotValueIndex = setInOrderPosition(a, pivotValueIndex, startIndex, endIndex);

        if (resultPivotValueIndex + 1 == n) {
            return a[resultPivotValueIndex];
        }
        if (resultPivotValueIndex + 1 > n) {
            return getNthValue(a, startIndex, resultPivotValueIndex - 1, n);
        } else {
            return getNthValue(a, resultPivotValueIndex + 1, endIndex, n);
        }

    }