堆排序:
堆的递增排序:对于堆来说,堆顶元素是最大的,堆排序的操作方法就是取出堆顶的元素,然后将堆的最后一个元素替换至堆顶,再进行一次针对堆顶元素的向下调整,如此重复下去。当堆中只有一个元素时,结束操作。
void heapsort()
{
create(); // 建堆
for(int i=n;i>1;i--)
{
swap(heap[i], heap[1]); // 交换heap[i]与堆顶
down(1,i-1); // 调整堆顶
}
}
堆排序:
堆的递增排序:对于堆来说,堆顶元素是最大的,堆排序的操作方法就是取出堆顶的元素,然后将堆的最后一个元素替换至堆顶,再进行一次针对堆顶元素的向下调整,如此重复下去。当堆中只有一个元素时,结束操作。
void heapsort()
{
create(); // 建堆
for(int i=n;i>1;i--)
{
swap(heap[i], heap[1]); // 交换heap[i]与堆顶
down(1,i-1); // 调整堆顶
}
}