第一趟:[16 12 23 4 6] 26 [77 62 102 45 35 130]
第二趟:[6 12 4] 16 [23] 26 [35 62 45] 77 [102 130]
第三趟: 6 [12] 16 [23] 26 35 [62 45] 77 102 [130]
第四趟:4 6 12 16 23 26 35 45 [62] 77 102 130
第五趟:4 6 12 16 23 26 35 45 62 77 102 130
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
baiint i;
void quicksort(int a[],int start,int end);
int s[]={32,23,93,66,12,69,15,76,54};
quicksort(s,0,9);
for( i=0;i<9;i++)
printf("%4d",s[i]);
}
void quicksort(int*a,int start,int end)
{
int i,j,k,t;
k=a[start];
i=start;j=end;
while(i<j){
while(a[j]>=k&&i<j)
j--;
a[i]=a[j];
a[j]=k;
while(a[i]<=k&&i<j)
i++;
a[j]=a[i];
a[i]=k;
}
for( t=0;t<9;t++)
printf("%4d",a[t]);
printf("\n");
a[i]=k;
if(i-1>start) quicksort(a,start,i-1);
if(i+1<end) quicksort(a,i+1,end);
扩展资料:
void qsort(void *base, int nelem, int width, int (*fcmp)(const void *,const void *));
参数:
1、待排序数组首地址;
2、数组中待排序元素数量;
3、各元素的占用空间大小;
4、指向函数的指针,用于确定排序的顺序。
参考资料来源:百度百科-快速排序算法