# include <stdio.h>
int posetge(int* a,int L,int H);
void quicksort(int* a,int L,int H);
int main()
{
int i;
int a[10]={10,9,8,7,6,5,4,3,2,1};
quicksort(a,0,9);
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
void quicksort(int* a,int L,int H)
{
if(L<H)
{
int pos=posetge(a,L,H);
quicksort(a,L,pos-1);//因为pos已经确定了
quicksort(a,pos+1,H);
}
}
int posetge(int*a,int L,int H)
{
int val=a[L];
while(L<H)
{
while(L<H && a[H]>=val)
H--;
a[L]=a[H];//比枢纽小的移到左面
while(L<H && a[L]<=val)
L++;
a[H]=a[L];//比枢纽大的移到右面
}
a[L]=val;
return L;
}
int posetge(int* a,int L,int H);
void quicksort(int* a,int L,int H);
int main()
{
int i;
int a[10]={10,9,8,7,6,5,4,3,2,1};
quicksort(a,0,9);
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
void quicksort(int* a,int L,int H)
{
if(L<H)
{
int pos=posetge(a,L,H);
quicksort(a,L,pos-1);//因为pos已经确定了
quicksort(a,pos+1,H);
}
}
int posetge(int*a,int L,int H)
{
int val=a[L];
while(L<H)
{
while(L<H && a[H]>=val)
H--;
a[L]=a[H];//比枢纽小的移到左面
while(L<H && a[L]<=val)
L++;
a[H]=a[L];//比枢纽大的移到右面
}
a[L]=val;
return L;
}