Quick actions

cmd+k|ctrl+k

Navigation

Languages

4

Snippet info

Language

C

Visibility

public

Author

sriram

Created

2023-12-03T14:24:04.360398Z

Updated

2023-12-03T14:24:04.360398Z

#include<stdio.h>
#include<stdlib.h>
void MaxHeapify(int a[], int i, int n)
{
int j, temp;
temp = a[i];
j = 2*i;
 while (j <= n)
{
 if (j < n && a[j+1] > a[j])
 j = j+1;
 if (temp > a[j])
 break;
 else if (temp <= a[j])
 {
 a[j/2] = a[j];
 j = 2*j;
 }
}
a[j/2] = temp;
return;
}
void MinHeapify(int a[], int i, int n)
{
int j, temp;
temp = a[i];
j = 2*i;
 while (j <= n)
{
 if (j < n && a[j+1] < a[j])
 j = j+1;
 if (temp < a[j])
 break;
 else if (temp >= a[j])
 {
 a[j/2] = a[j];
 j = 2*j;
 }
}
a[j/2] = temp;
return;
}
void MaxHeapSort(int a[], int n)
{
int i, temp;
for (i = n; i >= 2; i--)
{
 temp = a[i];
a[i] = a[1];
 a[1] = temp;
 MaxHeapify(a, 1, i - 1);
}
}
void MinHeapSort(int a[], int n)
{
int i, temp;
for (i = n; i >= 2; i--)
{
 temp = a[i];
 a[i] = a[1];
 a[1] = temp;
 MinHeapify(a, 1, i - 1);
}
}
void Build_MaxHeap(int a[], int n)
{
int i;
for(i = n/2; i >= 1; i--)
 MaxHeapify(a, i, n);
}
void Build_MinHeap(int a[], int n)
{
int i;
for(i = n/2; i >= 1; i--)
 MinHeapify(a, i, n);
}
int main()
{
int n, i;
printf("\n Enter the number of Students : ");
scanf("%d",&n);
n++;
int arr[n];
for(i = 1; i < n; i++)
{
 printf("Enter the marks :%d ",i);
 scanf("%d",&arr[i]);
}
PRAGATIENGINEERINGCOLLEGE
(Autonomous)
B.Tech
ComputerScienceandEngineering
R-20
91
Build_MaxHeap(arr, n-1);
MaxHeapSort(arr, n-1);
int max,min;
printf("\nSorted Data : ASCENDING : ");
for (i = 1; i < n; i++)
 printf("%d->",arr[i]);
min=arr[1];
Build_MinHeap(arr,n-1);
 MinHeapSort(arr,n-1);
 printf("\nSorted Data : DESCENDING: ");
max=arr[1];
 for (i = 1; i < n; i++)
 printf("%d->",arr[i]);
 printf("\n Maximum Marks : %d Minimum marks : %d",max,min);
return 0;
}
INFO