首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和c代码,回答问题1至问题3,将解答写在对应栏内。 [说明] 某应用中需要对100000个整数元素进行排序,每个元素的取值在0~5之间。排序算法的基本思想是:对每一个元素x,确定小于等于x的元素个数(记为m),将x放在输出元素序列的
阅读下列说明和c代码,回答问题1至问题3,将解答写在对应栏内。 [说明] 某应用中需要对100000个整数元素进行排序,每个元素的取值在0~5之间。排序算法的基本思想是:对每一个元素x,确定小于等于x的元素个数(记为m),将x放在输出元素序列的
admin
2012-03-21
58
问题
阅读下列说明和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代码,分析该排序算法是否稳定。若稳定,请简要说明(不超过100字);若不稳定,请修改其中代码使其稳定(给出要修改的行号和修改后的代码)。
选项
答案
不稳定。修改第12行的for循环为for(i=n-1; i>=0; i--)即可。
解析
从图(k)可以看出,算法不稳定。算法不稳定的原因在于将数组a中元素放到数组b中时,是从数组a的第一个元素开始,依次取出元素放到数组b中。这样,相同的两个元素值,在数组a中的相对位置和在数组b中的相对位置正好相反。若从数组a的最后一个元素开始,依次向前取元素放到b数组中,可以保持相同元素的相对位置。因此将第12行的代码for(i=0; i<n; i++)改为for(i=n-1; i>0; i--),则排序算法是稳定的。
转载请注明原文地址:https://www.kaotiyun.com/show/OlDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
产品的功能性测试的内容不包括______。A.适合性B.易用性C.正确性D.互操作性
面向对象分析与设计是面向对象软件开发过程中的两个重要阶段,下列活动中,(25)不属于面向对象分析阶段。
某企业有生产部和销售部,生产部负责生产产品并送入仓库,销售部从仓库取出产品销售。假设仓库可存放n件产品。用PV操作实现他们之间的同步过程如下图所示。其中,信号量S是一个互斥信号量,初值为(1);S1是一个(2);S2是一
某企业有生产部和销售部,生产部负责生产产品并送入仓库,销售部从仓库取出产品销售。假设仓库可存放n件产品。用PV操作实现他们之间的同步过程如下图所示。其中,信号量S是一个互斥信号量,初值为(1);S1是一个(2);S2是一
测试用例是测试使用的文档化的细则,其规定如何对软件某项功能或功能组合进行测试。测试用例应包括下列(32)内容的详细信息。①测试目标和被测功能。②测试环境和其他条件。③测试数据和测试步骤。④测试记录和测试结果。
以下说法不正确的选项包括(48)。①软件测试不仅仅指测试的执行,还包括很多其他的活动②软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行③应用H模型有利于资源调配,有助于跟踪测试投入的流向④H模型指
测试记录包括、(64)。①测试计划或包含测试用例的测试规格说明。②测试期间出现问题的评估与分析。③与测试用例相关的所有结果,包括在测试期间出现的所有失败。④测试中涉及的人员身份。
随机试题
Hotelemployeesareremindedtobeandcourteous,especiallytofirst-timeguests.
法人的人格权包括【】
Weshould______alladvancedscienceandtechnologytodevelopoureconomy.
A.开放式:适于交往继续进行B.探索式C.偏向式D.在一次提问中提出几个问题E.封闭式:适于得到确切答复在一次社区护士与患者交谈的过程中,社区护士注意应用了几种提问技巧,请说出护士在下面的提问中分别采用了什么方式。“你支持控烟计划和戒酒计划吗
A.苏木紫小体B.洋葱皮样病变C.疣状心内膜炎D.血管炎E.盘状红斑能够诊断系统性红斑狼疮的特征性病理依据是
气体灭火系统管道末端采用防晃支架固定,支架与末端喷嘴间的距离不大于()。
2,3,6,3,5,12,5,7,24,7,(),()。
长天汽车制造公司的研究人员发现,轿车的减震系统越“硬”,驾驶人员在驾驶中越是感到刺激。因此,他建议长天汽车制造公司把所有的新产品的减震系统都设计得更“硬”一些,以提高产品的销量。下面哪一项如果为真,最能削弱该研究人员的建议?
AstudyfoundthattheradiationfromCTscans—thetestsregularlyusedto【C1】______internalinjuriesorsignsofcancer—islike
将高级语言编写的程序翻译成机器语言程序,所采用的两种翻译方式是
最新回复
(
0
)