Heapsort using C++
by ujjal roy
#include<bits/stdc++.h>
#define ll long long int
using namespace std;
ll arr[6];
void heapify(ll n,ll i)
{
ll left,right;
left=2*i+1;
right=2*i+2;
ll target;
target=i;
if(left<n&&arr[left]>arr[target])
{
target=left;
}
if(right<n&&arr[right]>arr[target])
{
target=right;
}
if(target!=i)
{
swap(arr[target],arr[i]);
heapify(n,target);
}
}
void builtheap(ll n)
{
for(ll i=(n/2-1);i>=0;i--)
{
heapify(n,i);
}
}
heapsort(ll n)
{
builtheap(n);
for(ll i=n-1;i>=0;i--)
{
swap(arr[i],arr[0]);
heapify(i,0);
}
}
int main()
{
ll n;
n=6;
arr[0]=2;
arr[1]=9;
arr[2]=7;
arr[3]=6;
arr[4]=5;
arr[5]=8;
heapsort(n);
for(ll i=0;i<6;i++)
{
cout<<arr[i]<<" ";
}
return 0;
}
0 Comments