Advertisement
Guest User

Untitled

a guest
May 21st, 2019
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. import java.util.Collections;
  2. import java.util.HashSet;
  3. import java.util.Iterator;
  4. import java.util.Set;
  5. import java.util.TreeSet;
  6.  
  7. class main {
  8.  
  9. static int[] mergeSort;
  10. public static void main(String[] args) {
  11.  
  12.  
  13. int arr[] = {6, 0, 1, 2, 3, 4, 5};
  14. Heap heap = new Heap(arr.length+1);
  15.  
  16. for (int i = 0; i < arr.length; i++) {
  17. heap.insertHeap(arr[i]);
  18. }
  19.  
  20. heap.print();
  21.  
  22. for (int i = arr.length - 1; i >= 0; --i) {
  23. arr[i] = heap.deleteHeap();
  24.  
  25. }
  26. print(arr);
  27. }
  28.  
  29. static void print(int[] arr) {
  30. System.out.println();
  31. for(int i=0; i<arr.length; i++) {
  32. System.out.printf(arr[i] + " ");
  33. }
  34. System.out.println();
  35. System.out.println();
  36. }
  37. }
  38.  
  39. class Heap {
  40. private int heapSize;
  41. private int arrHeap[];
  42.  
  43. public Heap(int len) {
  44. heapSize = 0;
  45. arrHeap= new int[len];
  46. }
  47.  
  48. public void insertHeap(int item) {
  49. int i = ++ heapSize;
  50.  
  51. while ((i != 1) && (item > arrHeap[i / 2])) {
  52. arrHeap[i] = arrHeap[i / 2];
  53. i /= 2;
  54. }
  55.  
  56. arrHeap[i] = item;
  57. }
  58.  
  59. public int getHeapSize() {
  60. return this.heapSize;
  61. }
  62.  
  63. public int deleteHeap() {
  64. int parent, child;
  65. int item, tmp;
  66. item = arrHeap[1];
  67. tmp = arrHeap[heapSize--];
  68. parent = 1;
  69. child = 2;
  70.  
  71. while (child <= heapSize) {
  72. if ((child < heapSize) && (arrHeap[child] < arrHeap[child + 1]))
  73. child++;
  74.  
  75. if (tmp >= arrHeap[child])
  76. break;
  77.  
  78. arrHeap[parent] = arrHeap[child];
  79. parent = child;
  80. child *= 2;
  81. }
  82.  
  83. arrHeap[parent] = tmp;
  84. return item;
  85. }
  86.  
  87. public void print() {
  88. for(int i=0; i<arrHeap.length; i++) {
  89. System.out.printf(arrHeap[i] + " ");
  90. }
  91. System.out.println();
  92. }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement