首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 对一个整数序列进行快速排序的方法是:在待排序的整数序列中取第一个数作为基准值,然后根据基准值进行划分,从而将待排序列划分为不大于基准值者(称为左子序列)和大于基准值者(称为右子
阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 对一个整数序列进行快速排序的方法是:在待排序的整数序列中取第一个数作为基准值,然后根据基准值进行划分,从而将待排序列划分为不大于基准值者(称为左子序列)和大于基准值者(称为右子
admin
2016-11-11
59
问题
阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
【说明】
对一个整数序列进行快速排序的方法是:在待排序的整数序列中取第一个数作为基准值,然后根据基准值进行划分,从而将待排序列划分为不大于基准值者(称为左子序列)和大于基准值者(称为右子序列),然后再对左子序列和右子序列分别进行快速排序,最终得到非递减的有序序列。函数quicksort(int a[],int n)实现了快速排序,其中,n个整数构成的待排序列保存在数组元素a[0]~a[n一1]中。
【C代码】
#include
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
=a[j];i++;)
while(i<j&&__________(2)) i++; //不大于基准值者保持在原位置
if (i<j) {a[j]=a
;j--;}
}
a
=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
);
return 0;
}
选项
答案
(1)a[j]>pivot 或a[j]>=pivot或等价形式 (2)a[i]<=pivot或a[i]<pivot 或等价形式 (3)quicksort(a,i)或quicksort(a,j)或等价形式 (4)quicksort(a+i+l,n一i一1) 或quicksort(a+j+1,n一j一1) 或等价形式 注:a+i+1可表示为&a[i+1],a+j+1可表示为&a[j+1] (5)arr,sizeof(arr)/sizeof(int) 注:sizeof(arr)/sizeof(int)可替换为8
解析
本题考查C程序设计基本技能及快速排序算法的实现。
题目要求在阅读理解代码说明的前提下完善代码,该题目中的主要考查点为运算逻辑和函数调用的参数处理。
程序中实现快速排序的函数为quicksort,根据该函数定义的首部,第一个参数为数组参数,其实质是指针,调用时应给出数组名或数组中某个元素的地址;第二个参数为整型参数,作用为说明数组中待排序列(或子序列)的长度。
快速排序主要通过划分来实现排序。根据说明,先设置待排序列(或子序列,存储在数组中)的第一个元素值为基准值。划分时首先从后往前扫描,即在序列后端找出比基准值小或相等的元素后将其移到前端,再从前往后扫描,即在序列前端找出比基准值大的元素后将其移动到后端,直到找出基准值在序列中的最终排序位置。再结合注释,空(1)处应填入“a[j]>pivot”,使得比基准值大者保持在序列后端。空(2)处应填入“a
<=pivot”,使得不大于基准值者保持在前端。
在完成1次划分后,基准元素被放入a
,那么分出来的左子序列由a[0]~a[i一1]这i个元素构成,右子序列由a[i+1]~a[n-1]构成,接下来应递归地对左、右子序列进行快排。
因此,结合注释,空(3)应填入“quicksort(a,i)”或其等价形式,以对左子序列的i个元素进行快排,也可以用&a[0]代替其中的a,它们是等价的,a与&a[0]都表示数组的起始地址。
空(4)所在代码实现对右子序列进行快排。右子序列由a[i+1]~a[n—1]构成,其元素个数为n一1一(i+1)+1,即n一i一1,显然元素a[i+1]的地址为&a[i+1]或a+i+1,所以空(4)应填入“quicksort(a+i+1,n—i一1)”或其等价形式。
在main函数中,空(5)所在代码首次调用函数quicksort对main函数中的数组arr进行快排,因此应填入“arr,sizeof(arr)/sizeof(int)”或其等价形式。
转载请注明原文地址:https://www.kaotiyun.com/show/g9jZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在大型分布式信息系统中,为提高信息处理效率,减少网络拥堵,信息存储的原则是:数据应尽量(66)________________。
在Excel中,函数“=AVERAGE(A1,.B4)”的含义是()。
在Word中可以用“编辑”→“定位”命令对需要寻找的位置进行快速定位,(48)不属于定位目标。
在Word2007的绘图工具栏上选定矩形工具,按住(36)________________按钮可绘制正方形。
从功能上说,计算机由输入设备、输出设备、______和CPU组成。
某家用监控摄像头广告所列的功能中,(15)有错误。
现在,企业数字化转型已是大势所趋。以下关于企业数字化转型的叙述中,不正确的是_________。
此配置允许DHCP服务器分配给客户的地址范围是什么?#/sbin/chkconfig-level3dhcpdon命令的作用是什么?
阅读以下说明,回答问题1至问题6,将解答填入答题纸对应的解答栏内。【说明】在Linux下安装配置DHCP服务,DHCP服务程序/usr/sbin/dhcpd需要读取配置文件/etc/d/hcpd.conf,以下是一个DHCP配置文件的主要内容:
随机试题
背景2013年4月,一飞行区指标为4E的机场修建滑行道桥,批准的可行性研究报告总投资为100万元。某具有一级机场场道工程专业承包企业资质的施工单位承担了施工任务。施工中发现施工图有问题,不得不停工。经技术人员反复研究认为施工图设计确有错误,需变更施工图设
编制技术方案现金流量表时,关于产品价格选择的说法错误的是()。
某市一生产企业为增值税一般纳税人,本期进口原材料一批,向海关缴纳进口环节增值税20万元;本期在国内销售甲产品缴纳增值税30万元、消费税50万元,消费税滞纳金1万元;本期出口乙产品一批,按规定退回增值税5万元。该企业本期应缴纳城建税()万元。
下列融资方式中,()不适于商业银行在遇到短期资金紧张时获得资金。
对于广大青少年来说,接受怎样的历史教育,将直接关系到他们如何看待历史、迎接未来。在中华民族走过的漫长征程中,抗日战争是有着特殊意义的一段历史。让青少年准确了解、正视这段历史,不仅可以增强整个民族的民族认同感和国家认同感,弘扬爱国精神,更重要的是,让历史成为
关于参考文献表,说法正确的有()。
在一个不透明的袋子里装有四个除颜色外完全相同的小球,白球1个,黄球1个,红球2个,摸出一个球不放回,再摸出一个球,两次都摸到红球的概率是().
在关键时期、重要时刻,党中央、国务院做出了建设创新型国家的决策,把增强自主创新能力作为国家战略。有关人士认为,创新型国家可以从三个方面理解:第一,要依靠创新支撑经济的发展;第二,使创新成为社会普遍行为;第三,能够形成有利于创新的制度基础。根据上述
某信息系统集成公司,根据市场需要从2013年初开始进入信息系统运营服务领域。公司为了加强管理,提高运营服务能力,企业通过了GB/T24405.1-2009idtISO20000-1:2005认证。2013年12月该公司与政府部门就某智能交通管理信
计算机网络协议由3要素组成:__________、语义和时序;
最新回复
(
0
)