不过没有原理都是一样的;通过Qartion(int a[],int l,int r)函数将数组a中元素划分为三部分,比a[r]小的,比a[r]大的,a[r];www.2cto.com
最后返回基准元素所在的位置;
[cpp]
#include
#include
#include
#include
#include
using namespace std;
const int N=99;
int Qartion(int a[],int l,int r)
{
int tmp=a[r];
int i=l-1;
for(int j=l;j<=r-1;j++)
{
if(a[j]<=tmp)
{
i++;
swap(a[i],a[j]);
}
}
swap(a[i+1],a[r]);
return i+1;
}
void Qsort(int a[],int l,int r)
{
int p=Qartion(a,l,r);
Qsort(a,l,p-1);
Qsort(a,p+1,r);
}
}
int main()
{
int n;
while(~scanf("%d",&n))
{
int a[100];
for(int i=0;i
cin>>a[i];
}
Qsort(a,0,n-1);
for(int i=0;i
cout< }
cout<
return 0;
}
作者: Java_beginer1