diff --git a/Build Heap.cpp b/Build Heap.cpp new file mode 100644 index 0000000..5f62054 --- /dev/null +++ b/Build Heap.cpp @@ -0,0 +1,47 @@ +#include + +using namespace std; + +//5,3,2,25,7,17,20,28,4 +void maxHeapify(int a[],int n,int index){ + int l,r,largest; + l=(index+1)*2-1; + r=(index+1)*2; + + if(la[index]){ + largest=l; + } + else{ + largest=index; + } + + if(ra[largest]){ + largest=r; + } + + if(largest!=index){ + int temp=a[index]; + a[index]=a[largest]; + a[largest]=temp; + + maxHeapify(a,n,largest); + } +} + +void buildHeap(int a[],int n){ + for(int i=n/2;i>=0;i--){ + maxHeapify(a,n,i); + } +} + +int main(){ + int a[]={65,3,22,25,27,17,20,8,4}; + + int n=sizeof(a)/sizeof(int); + buildHeap(a,n); + + for(int i=0;i