HEAP SORT

#include<stdio.h>
#define Max 50
void heapup(int arr[],int);
void heapdown(int arr[],int n);
int main(){
int Heap[Max],n,i,j;
printf("enter number of elements in array\n");scanf("%d",&n);
printf("enter  elements of array\n");
for(i=1;i<=n;i++)
{
scanf("%d",&Heap[i]);
}
heapup(Heap,n);
heapdown(Heap,n);
for(i=1;i<=n;i++){
printf("%d\t",Heap[i]);
}
return 0;
}

void heapup(int arr[],int n){
int temp,i=1,t,k=1;
  do{
i=k;
temp=arr[i];
  while((i>1)&&(arr[i]>arr[i/2])){
t=arr[i/2];
arr[i/2]=arr[i];
arr[i]=t;
i=i/2;
}
 k++;
  }while(k<=n);
}
void heapdown(int arr[],int n){
int t,k=n;
do{
t=arr[k];
arr[k]=arr[1];
arr[1]=t;
k--;
heapup(arr,k);
}while(k>0);
}

Comments

Popular Posts