阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
[说明]
对一个整数序列进行快速排序的方法是:在待排序的整数序列中取第一个数作为基准值,然后根据基准值进行划分,从而将待排序列划分为不大于基准值者(称为左子序列)和大于基准值者(称为右子序列),然后再对左子序列和右子序列分别进行快速排序,最终得到非递减的有序序列。
函数quicksort(int a[],int n)实现了快速排序,其中,n个整数构成的待排序列保存在数组元素a[0]~a[n-1]中。
[C代码]
#inclLade<stdi0.h>
void quicksort(int
a[], int n)
{
int i,j;
int pivot=a[0];
//设置基准值
i=0; j=n-1;
while (i<j){
while (i<1 && ______) j--; //大于基准值者保持在原位置
if (i<j) { a[i] =a[j]; i++;}
while(i<j&& ______) i++; //不大于基准值者保持在原位置
if (i<1) { a[j] =a[i]; 1--;}
}
a[i]=pivot;
//基准元素归位
if (i>1 )
______;
//递归地对左孔序列进行快速排序
if (n-i-1>1 )
______;
//递归地对右孔序列进行快速排序
}
int main()
{
int i, arr[]
={23,56,9,75,18,42,11,67};
quicksort(______);
//调用quicksort对数组arr[]进行排序
for( i=0;
i<sizeof(arr)/sizeof(int);
i++ )
printf("%d\t",arr[i]);
return 0;
}

