Advertisement
jakaria_hossain

Heap Sort

Oct 23rd, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.78 KB | None | 0 0
  1. #include<stdio.h>
  2. void heapify(int ara[],int n,int i)
  3. {
  4. int largest=i;
  5. int left=2*i+1;
  6. int right=2*i+2;
  7. if(left<n && ara[left]>ara[largest])largest=left;
  8. if(right<n && ara[right]>ara[largest])largest=right;
  9. if(largest!=i)
  10. {
  11. int temp=ara[i];
  12. ara[i]=ara[largest];
  13. ara[largest]=temp;
  14. heapify(ara,n,largest);
  15. }
  16. }
  17. void heapsort(int ara[],int n)
  18. {
  19. int i;
  20. for(i=n/2-1;i>=0;i--) heapify(ara,n,i);
  21. for(i=n-1;i>=0;i--)
  22. {
  23. int temp=ara[0];
  24. ara[0]=ara[i];
  25. ara[i]=temp;
  26. heapify(ara,i,0);
  27.  
  28. }
  29. }
  30. int main()
  31. {
  32. int i,n,array[100];
  33. scanf("%d", &n);
  34. for(i=0;i<n;i++)scanf("%d",&array[i]);
  35. heapsort(array,n);
  36. for(i=0;i<n;i++)printf("%d ",array[i]);
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement