【正确答案】
【答案解析】void sift(RecType R[], int n){ //把R[n]调成大堆
int j=n; R[0]=R[j];
for(i=n/2; i>=1; i=i/2)
if(R[0].key>R[i].key){ R[j]=R[i]; j=i;}
else break;
R[j]=R[0];
Void HeapBuilder(RecType R[], int n){
for(i=2; i<=n; i++) sift(R,i):
}
此题考查的知识点是堆的插入算法。从第n个记录开始依次与其双亲(n/2)比较,若大于双亲则交换,继而与其双亲的双亲比较,以此类推直到根为止。