Saturday 28 July 2012

heap sort


#include<iostream.h>
#include<conio.h>
int a[]={6,5,3,1,8,7,2,4};
int n=sizeof(a)/sizeof(a[0]);


void heapify(int k)
{
      for(int i=1;i<=k;i++)
      {
            int val=a[i];
            int pos=i;
            int parpos=(i-1)/2;
            while(parpos>=0 && val>a[parpos])
            {
                  a[pos]=a[parpos];
                  a[parpos]=val;
                  pos=parpos;
                  parpos=(parpos-1)/2;
            }
      }

}

void heapsort()
{
      for(int i=n-1;i>=0;i--)
      {
            heapify(i);
            int temp=a[i];
            a[i]=a[0];
            a[0]=temp;
      }
}

void display()
{
      for(int i=0;i<n;i++)
            cout<<"  "<<a[i];
}
void main()
{
      clrscr();
      heapsort();
      display();
      getch();
}

1 comment:

  1. 1. slowest of all fast sorting algos but unlike merge and quick sort it doesnot require massive recursion or multiple arrays.

    2.used for sorting very large sets millions of items.

    3. Heap sort is inplace and non-recursive.

    4. comparison based sort and is part of selection sort family.

    5. Not stable.

    ReplyDelete