# include<stdio.h>
# include<conio.h>
void
hsort();
void
main()
{
int a[50],r,p,i,n;
clrscr();
printf("\n\n\t\tHEAP
SORT\n\t\t~~~~~~~~~");
printf("\n\t\t\tINPUT\n\t\t\t--------");
printf("\nENTER
THE NUMBER OF ITEMS:");
scanf("%d",&n);
printf("\n\nENTER
THE NUMBERS: ");
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
for(i=n/2;i>=1;i--)
hsort(i,n,a);
for(i=n-1;i>=1;i--)
{
r=a[i+1];
a[i+1]=a[1];
a[1]=r;
hsort(1,i,a);
}
printf("\n\t\t\tOUTPUT\n\t\t\t-------\n");
for(i=1;i<=n;i++)
printf("\t%d",a[i]);
getch();
}
void
hsort(i,n,a)
int
i,n,a[50];
{
int p,m;
p=a[i];
m=2*i;
while(m<=n)
{
if((m<n)&&(a[m]<a[m+1]))
m++;
if(p>a[m])
goto
ab;
a[m/2]=a[m];
m=2*m;
}
ab:
a[m/2]=p;
}
No comments:
Post a Comment