【分析解答题】
阅读以下说明,将应填入{{U}} (n) {{/U}}处的字句写在答卷纸的对应栏内。

【说明】 下面的程序为堆排序程序,其中函数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)) {{U}} (1) {{/U}}; if (extr. key<r[j].key) { r[k]=r[j]; k=j; {{U}} (2) {{/U}}; } else {{U}} (3) {{/U}}; } 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) {{U}} (4) {{/U}}; /* 建立初始堆*/ for (k--n;k>=2;k- -) { extr=r[1]; r[1]=r[k]; r[k]=extr; {{U}} (5) {{/U}}; } }