未分类题
阅读以下说明,将应填入(n)处的字句写在答卷纸的对应栏内。
.jpg)
【说明】
下面的程序为堆排序程序,其中函数adjust(i,n)是把以R[i](1≤i≤┕i/2┙)为根的二叉树调整成堆的函数,假定R[i]的左、右子树已经是堆,程序中的,是在主函数中说明的结构数组,它含有要排序的n个记录。
【程序】
Void adjust(i,n)
Int i,n;
{
iht k,j;
element extr;
extr=r[i];
k=i;
j=2*i;
while (j<=n )
{if ((j<n) && (r[j].key<r[j+1].key))
(1);
if (extr. key<r[j].key)
{
r[k]=r[j];
k=j;
(2);
}
else
(3);
}
r[k]=extr;
}
/*让i从┗i/2┛逐步减到1, 反复调用函数adjust, 便完成建立初始堆的过程。*/
void heapsort (r,n)
list r;
int n;
{
int i,1;
element extr;
for (i=n/2;i>=1;- -i)
(4); /* 建立初始堆*/
for (k--n;k>=2;k- -)
{
extr=r[1];
r[1]=r[k];
r[k]=extr;
(5);
}
}
A.shangxueba.cn/images/ct_crmsdxm_crmsdxzuti_00193(20093).jpg'
B.key<r[j+1].key))
C.key)
【参考答案】
(1)j++(2)j*=2或j=k*2(3)j=n+1或break(4)adjust(in)(5)adjust(1k-1......
(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)