Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- void heapify(int ara[],int n,int i)
- {
- int largest=i;
- int left=2*i+1;
- int right=2*i+2;
- if(left<n && ara[left]>ara[largest])largest=left;
- if(right<n && ara[right]>ara[largest])largest=right;
- if(largest!=i)
- {
- int temp=ara[i];
- ara[i]=ara[largest];
- ara[largest]=temp;
- heapify(ara,n,largest);
- }
- }
- void heapsort(int ara[],int n)
- {
- int i;
- for(i=n/2-1;i>=0;i--) heapify(ara,n,i);
- for(i=n-1;i>=0;i--)
- {
- int temp=ara[0];
- ara[0]=ara[i];
- ara[i]=temp;
- heapify(ara,i,0);
- }
- }
- int main()
- {
- int i,n,array[100];
- scanf("%d", &n);
- for(i=0;i<n;i++)scanf("%d",&array[i]);
- heapsort(array,n);
- for(i=0;i<n;i++)printf("%d ",array[i]);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement