你好,能不能帮我写个程序啊,我的面试题,谢谢啊
追答for (i=int(n/2); i>0; i--){
parent = i;
child = i+i;
while (child<=n){
if ( ((child+1) <= n) && (heap[child] < heap[child+1]) )
child++;
if (heap[child] < heap[parent])
break;
temp = heap[parent];
heap[parent] = heap[child];
heap[child] = temp;
parent = child;
child = parent+parent;
}
}
for (i=0; i<10000; i++){
print heap[1]
temp = heap[1];
heap[1] = heap[n-i];
heap[n-i] = temp;
parent = 1;
child = 2;
while (child<n-i){
if ( (child+1)<(n-i) && heap[child]<heap[child+1])
child++;
if (heap[child] < heap[parent])
break;
temp = heap[parent];
heap[parent] = heap[child];
heap[child] = temp;
parent = child;
child = parent+parent;
}
}
没编译,
自己再稍微改些小地方,应该就差不多。