#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int tab[50];
int num=50;
void print(void)
{
int i=0,j=0;
for(i=0;i<num;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<num;i++)
{
temp=rand()%k;
tab[i]=a[temp];
{
for(m=temp+1;m<k;m++)
{
a[m-1]=a[m];
}
}
k--;
}
printf("\n排序前元素值:\n");
print();
}
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<r;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<r)
{
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;
}