已知一组记录为(46,74,53,14,26,38,86,65,27,34)给出采用快速排序法进行排序时每一趟的排序结果。

速度啊
2024-12-17 19:10:37
推荐回答(1个)
回答1:

第一趟:[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

while(a[j]>=k&&i

j--;

a[i]=a[j];

a[j]=k;

while(a[i]<=k&&i

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

扩展资料:

void qsort(void *base, int nelem, int width, int (*fcmp)(const void *,const void *));

参数:

1、待排序数组首地址;

2、数组中待排序元素数量;

3、各元素的占用空间大小; 

4、指向函数的指针,用于确定排序的顺序。

参考资料来源:百度百科-快速排序算法