摘要: 1.利用堆排序对数组进行排序。堆结构是把数组看成完全二叉树,除最后一层,每一层都是满的。堆分最大堆和最小堆,其中最大堆是指每一个子树中,根要比其两个孩子的值大,最小堆反之;数组元素升序需要用最大堆,降序用最小堆;这里使用最大堆。实现堆排序需要三个主要函数:建立最大堆,维持最大堆性质,和堆排序函数。建立最大堆(BuildMaxHeap):自底向上地维持最大堆性质,heapsize/2为最底下一层的父结点,即需要从结点下标为heapsize/2 ~ 0的结点调用维持最大堆性质的函数(MaxHeapify)。维持最大堆性质(MaxHeapify):将堆中某个元素调整到合适的位置(下沉);使之满足最大 阅读全文
posted @ 2013-05-12 23:07 hust_枫 阅读(364) 评论(0) 推荐(0) 编辑