On-Machine code:
#include <cstdio> #include <cstring> #include <algorithm>using namespace std; #define parent (i) (i)/2# Define left (i) + (i) #define RIGHT (i) (i) (i) +1int size;void heapify (int a[], int. i) {int L = left (i), R = Right (i), largest;i F (l<=size && a[l] > a[i]) largest = L;else largest = i;if (r<=size && a[r] > a[largest]) Largest = R;if (Largest! = i) {int t = a[i];a[i] = a[largest];a[largest] = t;heapify (A, largest);}} void build_heap (int a[]) {int len = size;for (int i=len/2; i>=1; i--) heapify (A, i);} void Heap_sort (int a[]) {build_heap (a); for (int i=size; i>=2; i--) {int t = a[1]; a[1] = A[i]; A[i] = T;size--;heapify (A, 1);}} int main () {int a[20];p rintf ("Please enter data: \ n"), scanf ("%d", &size), int len = size;printf ("Please enter%d number you want to sort: \ n", size); for ( int i=1; i<=size; i++) scanf ("%d", &a[i]), Heap_sort (a); for (int i=1; i<len; i++) printf ("%d", A[i]);p rintf ("%d\n", A[len]); return 0 ;}
Implementation of heap sorting algorithm!!