快排-无重复元素

void quicksort(int *pArray, int pStart, int pEnd){
    int flag = 0;
    if(pEnd>pStart)
        flag = pArray[random(pStart, pEnd)];
    else
        return;
    int start=pStart;
    int end=pEnd;
    while(pEnd>pStart){
        while(pArray[pStart]<flag)
            pStart++;
        while(pArray[pEnd]>flag)
            pEnd--;
        int temp = pArray[pEnd];

        pArray[pEnd] = pArray[pStart];
        pArray[pStart] = temp;
    }
    quicksort(pArray, start, pEnd-1);
    quicksort(pArray, pStart+1, end);
}


int main() {
    int a[] = {3, 10, 9 , 2, 5, 74, 7, 8};
    quicksort(a, 0, 7);
    for(int i=0; i<8;i++)
        cout<<a[i]<<" ";
    return 0;
}

猜你喜欢

转载自blog.csdn.net/u011926899/article/details/79648859