早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。 【说明】 采用归并排序

题目

阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。 【说明】 采用归并排序对n个元素进行递增排序时,首先将n个元素的数组分成各含n/2个元素的两个子数组,然后用归并排序对两个子数组进行递归排序,最后合并两个已经排好序的子数组得到排序结果。 下面的C代码是对上述归并算法的实现,其中的常量和变量说明如下: arr:待排序数组 p,q,r:一个子数组的位置从p到q,另一个子数组的位置从q+1到r begin,end:待排序数组的起止位置 left,right:临时存放待合并的两个子数组 n1,n2:两个子数组的长度 i,j,k:循环变量 mid:临时变量 【C代码】

inciude<stdio.h> inciude<stdlib.h> define MAX 65536 void merge(int arr[],int p,int q,int r) { int *left, *right; int n1,n2,i,j,k; n1=q-p+1; n2=r-q; if((left=(int*)malloc((n1+1)*sizeof(int)))=NULL) { perror("malloc error"); exit(1); } if((right=(int*)malloc((n2+1)*sizeof(int)))=NULL) { perror("malloc error"); exit(1); } for(i=0;i<n1;i++){ left[i]=arr[p+i]; } left[i]=MAX; for(i=0; i<n2; i++){ right[i]=arr[q+i+1] } right[i]=MAX; i=0; j=0; for(k=p; (1) ; k++) { if(left[i]> right[j]) { (2) ; j++; }else { arr[k]=left[i]; i++; } } } void mergeSort(int arr[],int begin,int end){ int mid; if( (3) ){ mid=(begin+end)/2; mergeSort(arr,begin,mid); (4) ; merge(arr,begin,mid,end); } }

【问题1】 根据以上说明和C代码,填充1-4。 【问题2】 根据题干说明和以上C代码,算法采用了(5)算法设计策略。 分析时间复杂度时,列出其递归式位(6),解出渐进时间复杂度为(7)(用O符号表示)。空间复杂度为(8)(用O符号表示)。 【问题3】 两个长度分别为n1和n2的已经排好序的子数组进行归并,根据上述C代码,则元素之间比较次数为(9)。

参考答案
正确答案:

【问题1】(8分)
(1)k<=r
(2)arr[k]=right[j]
(3)begin<end
(4)mergeSort(arr,mid+1,end)

【问题2】(5分)
(5)分治
(6)T(n)=2T(n/2)+O(n)
(7)O(nlogn)
(8)O(n)

【问题3】(2分)
(9)n1+n2


看了阅读下列说明和C代码,回答问题...的网友还看了以下:

某有机物的蒸汽和CO等体积混合后,在定容密闭容器中与O2混合点燃,O2剩余.反应前后密闭容器的温度 化学 2020-04-12 …

关于四大古代文明我去…到底四大古代文明和四大文明古国有什么区别吗为什么书上说古埃及文明,古代两河流 历史 2020-05-22 …

读图题(7分);(1)如图,请在下面两幅图中ABCDE处,写出他所代表的古代文明的名称。(5分)( 历史 2020-06-14 …

历史兴趣小组同学设计了如下展示古代文明的表格,请将以下空白处内容填写完整。地区文明成就古代埃及古代 历史 2020-07-09 …

古代的文明虽然好多不相通,但却很多有相似之处,那么古代埃及文明、古代巴比伦文明和古代印度文明的共同点 历史 2020-11-04 …

下面图中文物,代表着不同国家和地区的古代文明。结合所学知识,回答下列问题。(1)按照文明类型可以将上 历史 2020-11-05 …

阅读材料,回答问题:材料:“欧洲这片美丽富饶的土地,它是人类现代文明和现代科技的发源地。在这块土地上 历史 2020-11-23 …

古代文明交往的方式有和平交流和暴力冲撞,据此回答下列问题1.举出一例有关古代历史上典型的游牧文明与农 历史 2020-11-28 …

关于郭沫若《天上的街市》《静夜》的问题1.白云团团,漏出了几点疏星中“漏”字表现了()的意境2.《天 语文 2020-12-30 …

“人类的历史是文明的历史。这一历史穿越了历代文明,从古代苏美尔文明和埃及文明到古典文明和中美洲文明再 历史 2021-01-19 …