专业软件设计师网站|培训机构|服务商(加客服微信:cnitpm或QQ:800184589进软件设计师学霸群)

软题库 培训课程
当前位置:信管网 >> 软件设计师 >> 案例分析 >> 文章内容
软件设计师《案例分析》真题及答案5
来源:信管网 2021年07月09日 【所有评论 分享到微信

为帮助广大软考中级软件设计师考生更好备考,信管网特整理汇总了软件设计师部分《案例分析》真题、答案及解析供考生查阅,并提供免费在线模拟答题、历年真题免费下载等服务,了解软件设计师更多备考信息请关注信管网。

相关推荐:

点击查看/下载:软件设计师历年真题汇总

点击查看:软件设计师在线培训课程免费试听课程

免费练习:软件设计师考试题库(模拟试题、章节练习、每日一练)

【说明】

希尔排序算法又称最小增量排序算法,其基本思想是:

步骤1 :构造一个步长序列delta1、delta2...、deltak ,其中delta1=n/2 ,后面的每个delta是前一个的1/2 , deltak=1;

步骤2 :根据步长序列、进行k趟排序;

步骤3 :对第i趟排序,根据对应的步长delta,将等步长位置元素分组,对同一组内元素在原位置上进行直接插入排序。

【C代码】

下面是算法的C语言实现。

(1)常量和变量说明

data:待排序数组data,长度为n,待排序数据记录在data[0]、data[1]、...、data[n-1]中。

n:数组a中的元素个数。

delta:步长数组。

(2)C程序

#include

void shellsort(int data[ ], int n){

int *delta,k,i,t,dk,j;

k=n;

delta=(int *)nalloc(sizeof(int)*(n/2));

if(i=0)

do{

( 1 ) ;

delta[i++]=k;

}while ( 2 ) ;

i=0;

while((dk=delta[i])>0){

for(k=delta[i];k

if( ( 3 ) ) {

t=data[k];

for(j=k-dk;j>=0&&t

data[j+dk]=data[j];

}/*for*/

( 4 ) ; //data[j+dk]=t;

}/*if*/

++i;

}/*while*/

}

【问题1】(8分)

根据说明和c代码,填充c代码中的空(1) ~ (4)。

【问题2】(4分)

根据说明和c代码,该算法的时间复杂度(5)O(n2) (小于、等于或大于)。该算法是否稳定(6) ( 是或否)。

【问题3】(3分)

对数组(15、9、7、8、20、-1、 4)用希尔排序方法进行排序,经过di-趟排后得到的数组为(7)。

信管网参考答案:

【问题1】(8分)

(1) k=k/2

(2) k>1

(3) data[k]

(4) data[j+dk]=t

【问题2】 (4分)

(5)小于

(6)否

【问题3】(3分)

(7)(4,9,-1,8,20,7,15)

查看解析:www.cnitpm.com/st/4508523548.html

扫码关注公众号

温馨提示:因考试政策、内容不断变化与调整,信管网网站提供的以上信息仅供参考,如有异议,请以权威部门公布的内容为准!

信管网致力于为广大信管从业人员、爱好者、大学生提供专业、高质量的课程和服务,解决其考试证书、技能提升和就业的需求。

信管网软考课程由信管网依托10年专业软考教研倾力打造,官方教材参编作者和资深讲师坐镇,通过深研历年考试出题规律与考试大纲,深挖核心知识与高频考点,为学员考试保驾护航。面授、直播&录播,多种班型灵活学习,满足不同学员考证需求,降低课程学习难度,使学习效果事半功倍。

相关内容

发表评论  查看完整评论  

推荐文章