Quick Sort

    private static void quickSort(int[] array) {
        quickSortHelper(array, 0, array.length - 1);
    }

    private static void quickSortHelper(int[] array, int low, int high) {
        if (low >= high) return;

        int pivot = low;
        int left = low;

        for (int i = low + 1; i <= high; ++i) {
            if (array[i] < array[pivot]) {
                left++;
                int tmp = array[left];
                array[left] = array[i];
                array[i] = tmp;
            }
        }

        //swap pivot and left
        int tmp = array[left];
        array[left] = array[pivot];
        array[pivot] = tmp;

        quickSortHelper(array, left + 1, high);
        quickSortHelper(array, low, left - 1);

    }

results matching ""

    No results matching ""