Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static int[] HeapSort(int[] tab){
- buildMaxHeap(tab);
- return tab;
- }
- private static void buildMaxHeap(int[] tab)
- {
- int current_last = tab.length-1;
- for(int i=tab.length-1; i >= 0; i--)
- {
- heapify(tab, 0, i);
- int x = tab[current_last];
- tab[current_last] = tab[0];
- tab[0] = x;
- current_last --;
- }
- }
- private static void heapify(int[] tab, int index, int maxIndex)
- {
- int indexOfBigger = 2 * index + 1;
- int indexOfSmaller = 2 * index + 2;
- if(indexOfBigger < maxIndex) heapify(tab, indexOfBigger, maxIndex);
- if(indexOfBigger < maxIndex && tab[index] < tab[indexOfBigger])
- {
- int x = tab[indexOfBigger];
- tab[indexOfBigger] = tab[index];
- tab[index] = x;
- }
- if(indexOfSmaller < maxIndex && tab[index] < tab[indexOfSmaller])
- {
- int x = tab[indexOfSmaller];
- tab[indexOfSmaller] = tab[index];
- tab[index] = x;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement