private void quickSort(E[] array, int begin, int end) {
        if (end - begin >= 1) { // end > begin
            int pivot = partition(array, begin, end);
            quickSort(array, begin, pivot - 1);
            quickSort(array, pivot + 1, end);
        }
    }