简化版堆排序

1.另一种调整的方法:叶子节点不需要调整,从倒数第一个非叶子节点进行调整(最后一个节点的父亲),因为叶子节点可以近似为堆

void heapsort(int* a, int num)
{
	HP heap1;
	heappinit(&heap1);
	for (int i = 0; i < sizeof(a) / sizeof(int); ++i)
	{
		heappush(&heap1, a[i]);

	}
	int j = 0;
	while (heap1.size != 0)
	{
		int top1 = heap1.a[0];
		a[j++] = top1;
		heappop(&heap1);
	}

你可能感兴趣的:(数据结构,算法,数据结构)