#include <stdio.h>
#include <stdlib.h>
void MaxHeapify(int a[],int length,int i);
void BuildMaxHeapify(int a[],int length);
void HeapSort(int a[],int length);
void main(void)
{
int i;
int a[10]={1,3,4,2,1,3,2,19,4,0};
printf("Heapsort algorithm\n");
HeapSort(a,10);
for(i=0;i<10;i++)
printf("%d\n",a[i]);
while(1);
}
//在i的左右都满足最大堆性质时,使数组中下标为i的节点满足最大堆性质
void MaxHeapify(int a[],int length,int i)
{
int l = 2*i + 1; //左节点数组下标
......
阅读全文