#include<stdio.h>
#include<conio.h>
void main()
{
int a[5],n,i,temp;
printf("Enter numbers for elements");
scanf("%d",&n);
printf("Enter elements in Array");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
printf("Numbers are\n");
for(i=0;i<n;i++)
{
printf("%d",a[i]);
}
heap_sort(a,n);
printf("\nSorted Numbers are\n");
for(i=0;i<n;i++)
{
printf("%d",a[i]);
}
getch();
}
heap_sort(int a[],int n)
{
int i,temp;
heap_create(a,n);
for(i=n-1;i>0;i--)
{
temp=a[0];
a[0]=a[i];
a[i]=temp;
adjust(a,i);
}
return 0;
}
heap_create(int a[],int n)
{
int i,j,k,item;
for(k=1;k<n;k++)
{
item=a[k];
i=k;
j=(i-1)/2;
while(i>0&&item>a[j])
{
a[i]=a[j];
i=j;
j=(i-1)/2;
}
a[i]=item;
}
return 0;
}
adjust(int a[],int n)
{
int i,j,item;
j=0;
item=a[j];
i=2*j+1;
while(i<=n-1)
{
if(i+1<=n-1)
if(a[i]<a[i+1])
i++;
if(item<a[i])
{
a[j]=a[i];
j=i;
i=2*j+1;
}
else
break;
}
a[j]=item;
return 0;
}
Tags
MCA