快速排序

#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int a[10]={2,1,5,9,8,7,6,4,3,10};
void Swap(int i,int j)
{
    int x=a[i];
    a[i]=a[j];
    a[j]=x;
    return ;
}
int Partition(int p,int r)
{
    int i=p;
    int j=r+1;
     int x = a[p];
     while(true){
         while(a[++i]<x&&i<r);
         while(a[--j]>x);
         if(i>=j) break;
         Swap(i,j);
     }
     a[p]=a[j];
     a[j]=x;
     return j;
}
void qsort(int p,int r)
{
     if(p<r){
       int q=Partition(p,r);
       qsort(p,q-1);
       qsort(q+1,r);
     }
}
int main()
{
    qsort(0,9);
    for(int i=0;i<9;i++)
    {
        printf("%d ",a[i]);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/yuanbo123/p/6476199.html