软题库 学习课程
当前位置:信管网 >> 在线考试中心 >> 试题查看
试题题型【分析简答题】
试题内容

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

查看答案

相关试题