快速排序

#include <iostream>
using namespace std;
void QSort(int a[],int left,int right)
{
    if(left >= right)
    {
        return;
    }
    int first = left;
    int end = right;
    int k = a[first];
    while(first < end)
    {
        while(first < end && a[end] >= k )
        {
            end--;
        }
        a[first] = a[end];

        while(first < end && a[first] <= k)
        {
            first++;
        }
        a[end] = a[first];
    }
    a[first] = k;
    QSort(a,left,first-1);
    QSort(a,first+1,right);
}
int main()
{
    int a[10] = {9,5,6,8,10,55,23,57,10,30};
    QSort(a,0,9);
    for(int i=0;i<10;i++)
        printf("%d\n",a[i]);
    getchar();
    return 0;
}

你可能感兴趣的:(快速排序)