PROGRAM:
#include
#include
#include
#define MAX 10
void main()
{
int i,n;
int arr[MAX];
void makeheap(int arr[MAX],int n);
void heapsort(int arr[MAX],int n);
void display(int arr[MAX],int n);
clrscr();
for(i=0;i
arr[i]=0;
printf("\n How many elements you want to sort");
scanf("%d",&n);
printf("Enter the elements");
for(i=0;i
scanf("%d",&arr[i]);
printf("\n The elements are....");
display(arr,n);
makeheap(arr,n);
printf("\n Heapified");
display(arr,n);
heapsort(arr,n);
printf("\n Elements sorted by heapsort");
display(arr,n);
getch();
}
void makeheap(int arr[MAX],int n)
{
int i,val,j,father;
for(i=1;i
{
val=arr[i];
j=i;
father=(j-1)/2;
while(j>0&&arr[father]
{
arr[j]=arr[father];
j=father;
father=(j-1)/2;
}
arr[j]=val;
}
}
void heapsort(int arr[MAX],int n)
{
int i,k,temp,j;
for(i=n-1;i>0;i--)
{
temp=arr[i];
arr[i]=arr[0];
k=0;
if(i==1)
j=-1;
else
j=1;
if(i>2&&arr[2]>arr[j])
j=2;
while(j>=0&&temp
{
arr[k]=arr[j];
k=j;
j=2*k+1;
if(j+1<=i-1&&arr[j]
j++;
if(j>i-1)
j=-1;
}
arr[k]=temp;
}
}
void display(int arr[MAX],int n)
{
int i;
for(i=0;i
printf("%d",arr[i]);
}
OUTPUT:
How many elements you want to sort 5
Enter the elements
9
8
7
6
5
The elements are....
9
8
7
6
5
Heapified
9
8
7
6
5
Elements sorted by heapsort
5
6
7
8
9
CIET college Programs,LAB Programs for Engineering Students,DAA LAB Programs,DSA LAB Programs,Remoboys,karthik,Remokn,Student3k,programs source code,Design Analysis And Algorithms LAB Programs,Data Structures and Algorithms LAB Programs,LAB Codings,Coimbatore Institute of Engineering and Technology ( CIET )