Write a Program of Heap Sorting Algorithm in C++.


HEAP SORT

#include<iostream>
using namespace std;
#include<conio.h>
void max_heapify(int *a, int i, int n)
{
    int j,temp;
    temp=a[i];
    j=2*i;
    while(j<=n)
    {
                        if(j<n && a[j+1]>a[j])
                                    j=j+1;
                        if(temp>a[j])
                                    break;
                        else if(temp<=a[j])
                        {
                                    a[j/2]=a[j];
                        j=2*j;
                        }
    }
    a[j/2]=temp;
    return;
}
void heapsort(int *a, int n)
{
    int i,temp;
    for (i=n;i>=2;i--)
    {
                        temp=a[i];
                        a[i]=a[1];
                        a[1]=temp;
                        max_heapify(a,1,i-1);
    }
}
void build_maxheap(int *a, int n)
{
    int i;
    for(i=n/2;i>=1;i--)
                        max_heapify(a,i,n);
}
main()
{
    int n,i,x;
    cout<<"Enter no of elements of Array:";
    cin>>n;
    int a[20];
    for (i=1;i<=n;i++)
    {
                        cout<<"Enter element "<<(i)<<":";
                        cin>>a[i];
    }
    build_maxheap(a,n);
    heapsort(a, n);
    cout<<"Sorted output.....\n";
    for (i=1;i<=n;i++)
                        cout<<a[i]<<"          ";
    getch();
}
OUTPUT




No comments:

Post a Comment