Advertisement
Guest User

Untitled

a guest
Sep 2nd, 2014
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3.  
  4. void max_heapify(int a[], int i)
  5. {
  6. int largest;
  7. int temp;
  8.  
  9. int l = 2*i;
  10. int r = 2*i + 1;
  11.  
  12. if(l <= heapsize && a[l] > a[i])
  13. {
  14. largest = l;
  15.  
  16. }
  17. else
  18. {
  19. largest = i;
  20. }
  21.  
  22. if(r <= heapsize && a[r] > largest)
  23. {
  24. largest = r;
  25. }
  26. if(largest != i)
  27. {
  28. temp = a[i];
  29. a[i] = largest;
  30. largest = temp;
  31. max_heapify(a, largest);
  32. }
  33.  
  34. }
  35.  
  36. void build_max_heap(int a[])
  37. {
  38. int heapsize;
  39. int i;
  40. heapsize = a.length;
  41. for(i=(a.length)/2 - 1; i >= 1; i--)
  42. {
  43. max_heapify(a, 0);
  44. }
  45. }
  46.  
  47. void heapsort(int a[])
  48. {
  49. int temp;
  50. int i;
  51. build_max_heap(a);
  52. for(i = a.length; i > 0; i--)
  53. {
  54. temp = a[1];
  55. a[1] = a[i];
  56. a[i] = temp;
  57.  
  58. heapsize = heapsize - 1;
  59. max_heapify(a,1);
  60. }
  61. }
  62.  
  63. void main()
  64. {
  65. int i,j;
  66. int a[5];
  67. printf("enter the 5 elements");
  68. for(i = 0; i < 5; i++)
  69. {
  70. scanf("%d", &a[i]);
  71. }
  72.  
  73. heapsort(a);
  74.  
  75. printf("Sorted array is:");
  76.  
  77. for(j = 0; j < 5; j++)
  78. {
  79. printf("%d", a[j]);
  80. }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement