-->
当前位置:首页 > 题库 > 正文内容

程序填空题:Heap Sort

Luz4年前 (2021-05-10)题库1566
The function is to sort `N` elements in non-decreasing order by heap sort.

```c++
#define leftchild(i) ( 2*(i)+1 )

void PercDown( ElementType A[], int i, int N )
{ int child;
ElementType Tmp;

for ( Tmp = A[i]; leftchild(i) < N; i = child ) {
child = leftchild(i);
if (@@[child!=N-1 && A[child+1]>A[child]](3))
child ++;
if (@@[Tmp < A[child]](3)) A[i] = A[child];
else break;
}
@@[A[i] = Tmp](3);
}
void Heapsort( ElementType A[ ], int N )
{ int i;
for ( i = N / 2; i >= 0; i -- ) /* BuildHeap */
PercDown( A, i, N );
for ( i = N-1; i > 0; i -- ) {
Swap( &A[ 0 ], &A[ i ] );
@@[PercDown( A, 0, i )](3);
}
}
```





答案:
第1空:child!=N-1 && A[child+1]>A[child]

第2空:Tmp < A[child]

第3空:A[i] = Tmp

第4空:PercDown( A, 0, i )

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。