#include
#include
#include
int tab[50];
int num=50;
void print(void)
{
int i=0,j=0;
for(i=0;i
{
printf("%5d ",tab[i]);
j++;
if(j%10==0)
putchar('\n');
}
putchar('\n');
}
void init(void)
{
int i=0,j=0,k=0,m=0,temp;
int a[100];
srand((unsigned)time(NULL));
k=100;
for(i=0;i<100;i++)
a[i]=i;
for(i=0;i { temp=rand()%k; tab[i]=a[temp]; { for(m=temp+1;m { a[m-1]=a[m]; } } k--; } printf("\n排序前元素值:\n"); } void exchange(int*a,int*b) { int temp=0; temp=*a; *a=*b; *b=temp; int partition(int*a,int p,int r) { int temp=0,i=0,j=0; temp=a[r]; i=p-1; for(j=p;j { if(a[j]>=temp) { i++; exchange(&a[i],&a[j]); } } exchange(&a[i+1],&a[r]); return i+1; void quicksort(int*a,int p,int r) { int q=0,i=0; if(p { q=partition(a,p,r); quicksort(a,p,q-1); quicksort(a,q+1,r); } void sortprint(void) { printf("\n排序后元素值:\n"); print(); } int main() { init(); quicksort(tab,0,num-1); sortprint(); return 0; }