fuliangliang的Blog

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。

最小(大)堆应用---堆排序

#include<iostream>
#include"MinHeap.h"
using namespace std;

template<class T>
void HeapSort(T a[],int n){
 T temp;
 MinHeap<T> *m_heap = new MinHeap<T>(a,n);
 for(int i = n-1; i >= 1; i--){//a[0]与a[i]交换,重新调整堆0--->i-1
   
   temp = a[i];
   a[i] = a[0];
   a[0] = temp;
   m_heap->FilterDown(0,i-1);
 }
}

void main(){
 int a[5] = {3,2,1,4,5};
    HeapSort(a,5);
 for(int i = 0; i < 5; i++)
  cout<<a[i]<<" ";
 cout<<endl;
}

阅读更多
个人分类: Algorithm
上一篇最小堆应用---用最小堆实现huffman树
下一篇常用类之四---并查集(Union-Find Sets)
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭