![]() |
#2
apull2020-12-05 15:01
|

#include <stdio.h>
void quick(int *a,int s,int e)
{
if(s>=e) return;
int b=a[s];
while(s<e)
{
while(a[e]>b&&s<e) e--;
if(s<e) a[s++]=a[e];
while(a[s]<b&&s<e) s++;
if(s<e) a[e--]=a[s];
}
a[s]=b;
quick(a,s,s-1);
quick(a,s+1,e);
}
int main()
{
int a[10]={5,9,6,3,4,7,8,2,1,6},i;
quick(a,0,10-1);
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
void quick(int *a,int s,int e)
{
if(s>=e) return;
int b=a[s];
while(s<e)
{
while(a[e]>b&&s<e) e--;
if(s<e) a[s++]=a[e];
while(a[s]<b&&s<e) s++;
if(s<e) a[e--]=a[s];
}
a[s]=b;
quick(a,s,s-1);
quick(a,s+1,e);
}
int main()
{
int a[10]={5,9,6,3,4,7,8,2,1,6},i;
quick(a,0,10-1);
for(i=0;i<10;i++)
printf("%d ",a[i]);
}