首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和c代码,回答问题1至问题3,将解答写在对应栏内。 [说明] 某应用中需要对100000个整数元素进行排序,每个元素的取值在0~5之间。排序算法的基本思想是:对每一个元素x,确定小于等于x的元素个数(记为m),将x放在输出元素序列的
阅读下列说明和c代码,回答问题1至问题3,将解答写在对应栏内。 [说明] 某应用中需要对100000个整数元素进行排序,每个元素的取值在0~5之间。排序算法的基本思想是:对每一个元素x,确定小于等于x的元素个数(记为m),将x放在输出元素序列的
admin
2012-03-21
72
问题
阅读下列说明和c代码,回答问题1至问题3,将解答写在对应栏内。
[说明]
某应用中需要对100000个整数元素进行排序,每个元素的取值在0~5之间。排序算法的基本思想是:对每一个元素x,确定小于等于x的元素个数(记为m),将x放在输出元素序列的第m个位置。对于元素值重复的情况,依次放入第m-1、m-2、…个位置。例如,如果元素值小于等于4的元素个数有10个,其中元素值等于4的元素个数有3个,则4应该在输出元素序列的第10个位置、第9个位置和第8个位置上。
算法具体的步骤为:
步骤1:统计每个元素值的个数。
步骤2:统计小于等于每个元素值的个数。
步骤3:将输入元素序列中的每个元素放入有序的输出元素序列。
[C代码]
下面是该排序算法的C语言实现。
(1)常量和变量说明
R:常量,定义元素取值范围中的取值个数,如上述应用中R值应取6。
i:循环变量。
n:待排序元素个数。
a:输入数组,长度为n。
b:输出数组,长度为n。
c:辅助数组,长度为R,其中每个元素表示小于等于下标所对应的元素值的个数。
(2)函数sort
1 void sort(int n, int a[], int b[]) {
2 int c[R], i;
3 for(i=0; i< (1) ; i++) {
4 c
=0;
5 }
6 for(i=0; i<n; i++) {
7 c[a
]= (2) ;
8 }
9 for(i=1; i<R; i++) {
10 c
= (3) ;
11 }
12 for(i=0; i<n; i++) {
13 b[c[a
]-1]= (4) ;
14 c[a
]=c[a
]-1;
15 }
16 }
根据说明和C代码,填充C代码中的空缺(1)~(4)。
选项
答案
(1)R (2)c[a[i]]+1 (3)c[i]+c[i-1] (4)a[i]
解析
本题考查算法设计与分析技术以及算法的C语言实现,是比较传统的题目,要求考生细心分析题目中所描述的内容。
根据题中说明,第3到第5行代码进行c数组的初始化,c数组的长度为R,在C语言中,下标从0开始,因此空格(1)中填写R。第6到第8行检查a数组的每一个元素。如果元素的值为i,则增加c
的值。因此c[a
]=c[a
]+1,空格(2)填写c[a
]+1。完成第6行到第8行的代码后,c
中就存放了等于i的元素的个数。第9到第11行,通过在数组c中记录计数和,c
=c[i-1]+c
,可以确定对每一个i=0,1,…,R-1,有多少个元素是小于或等于i的。因此空格(3)填写c[i-1]+c
。第12行到第15行把数组a中每个元素a
放在输出数组b中与其相应的最终位置上,b[c[a
]-1]=a
,因此空格(4)填写a
。由于可能存在相同元素,因此每次将一个值a
放入数组b中时,都要减小c
的值。下面以一个例子来说明排序过程。
设a={4,1,3,4,3,4},R=5,即待排序的元素值在{0,1,2,3,4}中,其排序过程如下图所示。
图中(a)为输入数组a,(b)为初始化后的c数组,(c)为统计数组a中每个元素后的c数组,(d)为计数和,即统计小于等于i的元素个数后的c数组。(e)到(j)是将a数组中的元素依次放到b数组的过程,(k)是数组a和数组b的元素对应关系。
转载请注明原文地址:https://www.kaotiyun.com/show/7lDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
在一个完整的功能测试过程中,______不属于应该编写的测试文档。A.测试需求文档B.测试用例文档C.测试标准D.问题报告单
程序运行过程中常使用参数在函数(过程)间传递信息,引用调用传递的是实参的()。
软件内部/外部质量模型中,以下(66)不是功能性包括的子特性。
甲、乙软件公司于2013年9月12日就其财务软件产品分别申请“大堂”和“大唐”商标注册。两财务软件相似,且经协商双方均不同意放弃使用其申请注册的商标标识。此情形下,()获准注册。
测试用例是测试使用的文档化的细则,其规定如何对软件某项功能或功能组合进行测试。测试用例应包括下列(32)内容的详细信息。①测试目标和被测功能。②测试环境和其他条件。③测试数据和测试步骤。④测试记录和测试结果。
软件可移植性应从如下(46)方面进行测试。
计算机采用分级存储体系的主要目的是为了解决()的问题。
计算机系统中,虚拟存储体系由______两级存储器构成。
静态图像压缩标准JPEG2000中使用的是(60)算法。
随机试题
当代中国的行政决策主要包括()
直肠癌最主要的转移途径
患者,女,37岁。心悸失眠,虚烦神疲,梦遗健忘,手足心热,口舌生疮,舌红少苔,脉细数,宜选
A.苯妥英钠B.乙琥胺C.卡马西平D.促肾上腺皮质激素E.丙戊酸钠
甲、乙、丙三人成立一普通合伙企业,总资本10万元,成立时甲投入一台机器,价值2万元,现金2万元。经营3年后,该合伙企业对外欠债11万元。现甲提出退伙,那么下列说法正确的是哪些?()
公积金个人住房贷款实行()的原则。
工作分析是通过系统的分析方法来确定()的过程。
国家发改委会同工业和信息化部、农业部、商务部等16个部门共同制定《降低流通费用提高流通效率综合工作方案》,进一步降低企业流通费用,提高流通效率。降低流通费用会:
社会性处罚:指存在失信行为的人员所受到的与自身失信行为没有直接关联的来自其他部门的限制和处罚。下列属于社会性处罚的是
洪水
最新回复
(
0
)