From 6f7ecd9054f367a0ae02a474241b2d24ccc0529b Mon Sep 17 00:00:00 2001 From: ank2710 <56040254+ank2710@users.noreply.github.com> Date: Tue, 1 Oct 2019 21:57:45 +0530 Subject: [PATCH] Created Build Heap. Implement Build Heap. --- Build Heap.cpp | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 Build Heap.cpp 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