Heap Sort Program

Heap Sort Program:


class Heap_Sort
{
       public static void main(String args[])
       {
              int ar[]={10,8,12,16,9,7,5,15,14,3};
              int size=ar.length;
              heapSort(ar,size);
              for(int x=0;x<=ar.length-1;x++)
              {
                     System.out.print(ar[x] + " ");
              }
       }

       public static void maxHeapify(int ar[],int i,int size)
       {
              int l=2*i;
              int r=2*i+1;
              int largest;
              if(l<size && ar[l]>ar[i])
              {
                     largest=l;
              }
              else
              {
                     largest=i;
              }
              if(r<size && ar[r]>ar[largest])
              {
                     largest=r;     
              }
              if(largest!=i)
              {
                     int t=ar[i];
                     ar[i]=ar[largest];
                     ar[largest]=t;
                     maxHeapify(ar,largest,size);
              }
       }

       public static void maxHeap(int ar[],int size)
       {
              int n=ar.length;
              for(int i=size/2;i>=0;i--)
              {
                     maxHeapify(ar,i,size);
              }
       }

       public static void heapSort(int ar[],int size)
       {
              maxHeap(ar,size);
              int n=ar.length;
              for(int x=size-1;x>=1;x--)
              {
                     int t=ar[0];
                     ar[0]=ar[x];
                     ar[x]=t;
                     size=size-1;
                     maxHeapify(ar,0,size);
              }
       }
}

Post a Comment

0 Comments