软题库 移动APP 扫码下载APP 随时随地移动学习 培训课程
当前位置:信管网 >> 在线考试中心 >> 信息系统项目管理师题库 >> 试题查看
试卷名称 2015年下半年程序员考试下午真题试题(案例分析)
考试中心《2015年下半年程序员考试下午真题试题(案例分析)》在线考试
试卷年份2015年下半年
试题题型【分析简答题】
试题内容

阅读以下说明和 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<j  &&(1)) j--                            //大于基准值者保持在原位置
               if  (i<j)   { a[i]=a[j];    i++;}
               while  (i,j  &&(2)) i++;                         //不大于基准值者保持在原位置
               if  (i<j)   { a[j]=a[i];    j--;}
        }
        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<sizeof(arr)  /sizeof(int); i++ )
        printf(" %d\t" ,arr[i]) ;
    return 0;
}


相关试题

推荐文章
合作网站内容