归并排序算法试题分析与实现.pdfVIP

  • 0
  • 0
  • 约3.01千字
  • 约 4页
  • 2026-09-25 发布于北京
  • 举报

2014年上半年试题四

阅读下列说明和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代码】

#includestdio.h

#includestdlib.h

#defineMAX65536

voidmerge(intarr[],intp,intq,intr){

int*left,*right;

intn1,n2,i,j,k;

n1=q-p+1;

n2=r-q;

if((left=(int*)malloc((n1+1)*sizeof(int)))=

文档评论(0)

1亿VIP精品文档

相关文档