Heap Sort Algorithm in Data Structure
Algorithm for Heap Sort:
Algorithm fnHeapSort { heap_size=length; fnMaxHeap(length); for(i=length; i>=2; i--) { interchange(1, i); heap_size--; MaxHeapify(1, heap_size); } } // End of Algorithm
Algorithm for Max Heap:
Algorithm fnMaxHeap(length) { for(i=length/2; i>=1; i--) max_heapify(i, length); } // End of Algorithm
Algorithm for Max Heapify:
Algorithm MaxHeapify(i, length) { l=left(i); r=right(i); if(l<=heap_size) { if(l<=heap_size && P[l]>=P[i]) largest=l; else largest=i; if(r<=heap_size && P[r]>P[largest]) largest=r; if(largest!=i) { interchange(i, largest); MaxHeapify(largest, heap_size); } } }
Algorithm for Left Child:
Algorithm left(i) { return(2*i); }
Algorithm for Right Child:
Algorithm right(i) { return(2*i); }