Tuesday 19 May 2015

Implementation of HEAP SORT using C programming

#include<stdio.h>
void heap_sort(int a[],int n)
{
int i,elt,s,f,ival;

for(i=1;i<n;i++)
{
elt=a[i];
s=i;
f=(s-1)/2;
while(s>0 && a[f]<elt)
{

a[s]=a[f];
s=f;
f=(s-1)/2;
}
a[s]=elt;
}

for(i=n-1;i>0;i--)
{
ival=a[i];
a[i]=a[0];
f=0;

if(i==1)
s=-1;
else
s=1;
if(i>2 && a[2]>a[1])
s=2;
while(s>=0 && ival<a[s])
{
a[f]=a[s];
f=s;
s=2*f+1;

if(s+1<=i-1 && a[s]<a[s+1])
s=s+1;
if(s>i-1)
s=-1;
}
a[f]=ival;
}
}
main()
{
int a[20],n,i;

printf("****HEAP-SORT****\n");
printf("Enter the number of elements: ");
scanf("%d",&n);
printf("Enter the %d elements of numbers: ",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);

heap_sort(a,n);
printf("Sorted elements are: ");
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
}

No comments:

Post a Comment