Quick Sort in C++
void swap(int array[], int i, int j) {
    int tmp = array[i];
    array[i] = array[j];
    array[j] = tmp;
}

int partition(int array[], int lo, int hi) {
    if(hi > lo) {
        int p = array[hi];
        int big = lo;
        for(int i=lo; i<=hi; i++) {
            if(array[i] <= p)     {
                swap(array, i, big);
                if(i < hi)
                    big++;
            }
        }
        return big;
    }
    return -1;
}

void quickSort(int array[], int lo, int hi) {
    if(hi > lo) {
        int pivot = partition(array, lo, hi); 
        quickSort(array, lo, pivot-1);
        quickSort(array, pivot+1, hi);
    }
}